如果轻轻触摸,强制触摸动画会冻结

Ste*_*aul 7 objective-c ios

我在聊天视图中的应用程序中实现了Force Touch.当用户强制触摸另一用户的聊天消息泡泡时,呈现他/她的简档.出于某种奇怪的原因,当轻轻按下消息气泡时,交互式转换会卡住,所有可见的是应该逐步淘汰的视图的屏幕截图.

我也使用View Hierarchy Debugger调试了这个问题,这UITransitionView绝对是最顶层的视图.该应用程序不会崩溃 - 它仍然在运行,用户仍然可以接收消息,但不能查看它们,退出屏幕等等,因为屏幕截图位于顶部.

有没有人遇到过这样的问题?听起来像是一个苹果虫.

kim*_*aro 0

我找到了这个错误的原因。

如果您的视图控制器需要支持强制触摸预览,您需要通过调用向委托注册该视图控制器

- (id <UIViewControllerPreviewing>)registerForPreviewingWithDelegate:(id<UIViewControllerPreviewingDelegate>)delegate 
    sourceView:(UIView *)sourceView NS_AVAILABLE_IOS(9_0);
Run Code Online (Sandbox Code Playgroud)

方法来做到这一点。

我只是突然调用这个函数两次(一次在超类'中viewDidLoad(),一次在子视图控制器中),当我在子视图控制器中删除一次时,这个错误就被修复了!惊人的...

这仍然是苹果的一个错误,因为这种情况的发生毫无意义。不过,希望这个答案可以帮助到和我有同样问题的开发者。

供参考。我刚刚浏览了你的Github代码,没有发现对register方法的双重调用。也许这个错误还有其他原因。您可以尝试删除您的UITableViewController子类中的 register 方法。顺便说一下,当视图控制器使用 ComponentKit 时,我重现了这个问题。