1)我的单元格是可选的,因此用户可以按下它或使用“3D Touch”.问题是,当我对UITableViewCell使用“Pop”和“Peek”时,它会被选中,我无法使用setSelected:或setHighlighted:方法以正常方式取消选择.我试图在不同的地方取消选择它,即使在presentingContext:presentViewController完成中的commitViewController中也是如此.他们什么都不做,细胞仍处于选定状态.我通过调用reviewingContext.sourceView和其他临时代码来检索选定的单元格,这些代码给了我选定的单元格,但这些方法不起作用.
>所以问题是当用户在其上应用“Pop”时,有一种正常的方法可以取消选择(或更好地选择)单元格吗?
2)我也注意到有时当我取消“Pop”手势并将单元格置于初始状态时(当预览窗口:viewControllerForLocation方法甚至没有被调用时)我的UI只是挂起并且根本不响应触摸.我需要杀死才能使它发挥作用.这看起来很奇怪,我检查了这个Tutorial.它工作得很好,没有提到问题,但是它们不在单元格上注册委托,而是在UITableView上,因此“Pop”手势突出显示整个tableView,但不是单元格.
>有什么想法,这里有什么不妥?
以下是我在测试UITableViewController中实现3D触摸的方法,该测试符合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) }
提前致谢!
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。