मैंने कुछ परीक्षण 3D Touch
कार्यक्षमता को UITableViewController
पर आईफोन 6 एस पर जोड़ा। आम तौर पर यह ठीक काम करता है, लेकिन मैं कुछ 2 समस्याओं का पालन करने में सक्षम था, और मुझे यकीन नहीं है कि क्या हो रहा है और इसे सामान्य तरीके से कैसे ठीक किया जाए।3 डी टच और UITableViewCell
1) मेरा सेल चयन योग्य है, इसलिए उपयोगकर्ता इसे दबा सकता है या "3 डी टच" का उपयोग कर सकता है। समस्या यह है कि जब मैं UITableViewCell
के लिए "पॉप" और "पीक" का उपयोग करता हूं तो यह चयनित हो जाता है और मैं setSelected:
या setHighlighted:
विधियों का उपयोग करके सामान्य तरीके से अचयनित नहीं कर सकता। मैंने presentViewController
में previewingContext:commitViewController
में भी विभिन्न स्थानों पर इसे अचयनित करने का प्रयास किया। वे अभी कुछ भी नहीं करते हैं और कोशिकाएं अभी भी चयनित राज्य में रहती हैं। मैंने reviewingContext.sourceView
और अन्य अस्थायी कोड को कॉल करके चयनित सेल पुनर्प्राप्त किया जिसने मुझे चयनित सेल दिया, लेकिन ये विधियां काम नहीं करतीं।
- तो सवाल यह है कि वहाँ का चयन रद्द करने (या बेहतर कोई चयन करने के लिए) सेल उपयोगकर्ता उस पर लागू किया जब "पॉप" प्रेस एक सामान्य तरीका है?
2) मैंने यह भी देखा है कि कभी कभी जब मैं अभी नहीं "पॉप" इशारा और राज्य प्रारंभिक सेल लाने (जब previewingContext:viewControllerForLocation
विधि भी नहीं बुलाया गया था) मेरी यूआई सिर्फ लटकी हुई है और सब पर छूता है का जवाब नहीं है । मुझे इसे काम करने के लिए मारने की जरूरत है। यह बहुत अजीब लगता है, मैंने इस Tutorial की जांच की। यह बिना किसी मुद्दे के महान काम करता है, लेकिन वे सेल पर नहीं प्रतिनिधि को पंजीकृत करते हैं, लेकिन UITableView
पर "पॉप" इशारा पूरे तालिका को हाइलाइट करते हैं, लेकिन सेल नहीं।
- किसी भी विचारों और यहाँ क्या गलत हो सकता है?
यहाँ कैसे मैं अपने परीक्षण UITableViewController
जो पहले से UIViewControllerPreviewingDelegate
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCellWithIdentifier("SomeDemoID",
forIndexPath: indexPath) as! UITableViewCell
// Some cell configuration
if #available(iOS 9.0, *) {
if traitCollection.forceTouchCapability == .Available {
self.registerForPreviewingWithDelegate(self, sourceView: cell)
}
} else { // Fallback on earlier versions}
return cell;
}
// MARK: - UIViewControllerPreviewingDelegate
func previewingContext(previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController?
{
// Just Test View Controller
return UIViewController(nibName: nil, bundle: nil)
}
func previewingContext(previewingContext: UIViewControllerPreviewing, commitViewController viewControllerToCommit: UIViewController)
{
self.presentViewController(viewControllerToCommit, animated: true, completion: nil)
}
धन्यवाद के अनुरूप में 3 डी टच लागू किया है!