我在两种完全不同的情况下遇到了这个问题,这真的很奇怪。
- 情况:一个 UIButton 作为另一个 UIView 的 subview 。
- 情况:UIBarButtonItem 在 UIToolBar 中。
在这两种情况下,按钮仅在稍有延迟(大约 0.5 - 1 秒)后才会突出显示。正常点击时肯定会长时间突出显示 View 。它们在模拟器上都能完美运行,但在真实设备上却不行(我有一部装有 iOS 7.0.4 的 iPhone 5s)。
我尝试了什么
将 zPosition 设置为这些 View 的最大值 (MAXFLOAT),以确保没有任何东西阻挡点击。
显式启用突出显示。
两者显然都不起作用。
编辑:仍未解决。
最佳答案
如果按钮靠近显示屏的底部边缘,就会发生这种情况。显示控制中心(或 iPhone X 和 iPad 上的 App 切换器)的系统边缘手势存在冲突。它会延迟按钮的触摸,直到确定用户没有执行系统手势。
如果您愿意,可以告诉系统让您的手势优先于系统手势。
override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
return .bottom
}
但请注意,这需要用户滑动两次才能激活系统手势。
关于ios - 按钮高亮状态的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20134328/