我已经在我的应用程序的聊天 View 中实现了 Force Touch。当用户用力触摸另一个用户的聊天消息气泡时,会显示他/她的个人资料。出于某种奇怪的原因,当轻轻按下消息气泡时,交互式转换会卡住,所有可见的都是应该被淘汰的 View 的屏幕截图。
我也使用 View Hierarchy Debugger 调试了这个问题,UITransitionView
绝对是最顶层的 View 。该应用程序不会崩溃 - 它仍在运行,用户仍然可以接收消息但无法查看消息、退出屏幕等,因为屏幕截图卡在了顶部。
有人遇到过这样的问题吗?听起来像一个苹果错误。
最佳答案
我找到了这个错误的原因。
如果你的view controller需要支持force touch预览,你需要调用delegate注册这个view controller
- (id <UIViewControllerPreviewing>)registerForPreviewingWithDelegate:(id<UIViewControllerPreviewingDelegate>)delegate
sourceView:(UIView *)sourceView NS_AVAILABLE_IOS(9_0);
执行此操作的方法。
我只是突然调用这个函数两次(一次在父类(super class)的viewDidLoad()
中,一次在 subview Controller 中),当我在我的 subview Controller 中删除一次时,这个错误是固定的!太棒了……
它仍然是一个 Apple 错误,因为它对发生这种情况毫无意义。不过,希望这个回答可以帮助到和我有同样问题的开发者。
仅供引用。我刚刚浏览了你的 Github 代码,发现没有重复调用 register 方法。也许这个错误还有其他原因。您可以尝试删除 UITableViewController
子类中的 register 方法。顺便说一句,当 View Controller 使用 ComponentKit 时,我重现了这个问题。
关于ios - 如果轻轻触摸,Force Touch 动画会卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33557823/