ios - 如果轻轻触摸,Force Touch 动画会卡住

标签 ios objective-c

我已经在我的应用程序的聊天 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/

相关文章:

ios - UINavigationbar 会在 UISearchbar 结束搜索后显示,如何隐藏导航栏

objective-c - 我怎样才能取消动画并从transitionFromView :toView:duration:options:completion?开始

iOS - 核心数据栈作为单例与主 NSManagedObjectContext

ios - Appium on ios 真机报sdk iphone模拟器报错

ios - 如何让 IB 创建 Action 连接?

ios - 带有背景图像的 UItableviewcells 没有填满屏幕的整个宽度?

ios - 调整 UIView 大小时动画无法按预期工作

ios - 搜索 Controller 中的搜索栏重叠状态栏

iOS Google Maps SDK - 在后台使用位置

ios - 子类 UITabBar 与 UIWebView 一起呈现