在横向模式下扩展 iPhone X 的触控区域

Posted

技术标签:

【中文标题】在横向模式下扩展 iPhone X 的触控区域【英文标题】:Extend touch area on iPhone X in landscape mode 【发布时间】:2017-11-13 12:47:30 【问题描述】:

如果UIViewController横向模式 下启动,即使home indicator 不在右侧,屏幕上最右边的 44 个点仍然不会响应触摸。我想知道禁用这些像素进行触摸的目的是什么,有没有办法扩展右侧的触摸区域?

【问题讨论】:

你能发布任何相关的代码吗?您使用检测触摸的哪个视图以及它的限制是什么? 【参考方案1】:

safearealayoutguide

当视图在屏幕上可见时,本指南会反映 未被导航栏、标签栏、工具栏覆盖的视图, 和其他祖先的观点。 (在 tvOS 中,安全区域反映了该区域 没有覆盖屏幕的边框。)如果视图当前没有 安装在视图层次结构中,或者在屏幕上尚不可见, 布局指南边缘等于视图的边缘。

当您尝试在安全区域之外添加对象时,您的内容有机会被 Device Bazels 剪辑。

示例: 当您将安全区域外的按钮添加为

let buttonOutsideSafeArea = UIButton(frame: CGRect(x: 0, y: 100, width: 44, height: 40))
buttonOutsideSafeArea.backgroundColor = .red
self.view.addSubview(buttonOutsideSafeArea)

当您在设备上向右旋转时。

但是当你向左旋转时它会被剪掉(被Top Notch)

因此尽量避免添加超出安全区域的对象

【讨论】:

以上是关于在横向模式下扩展 iPhone X 的触控区域的主要内容,如果未能解决你的问题,请参考以下文章

减少 UIButton 的触控区域

iOS 增加 UITableViewCell 中 UIButton 的触控区域

iPhone X 横向模式下的视图看起来不正确

Linux下,基于EETI触屏控制器的触屏失灵解决方法

Xcode 5 在横向模式下不会显示 iPhone 的启动图像

Unity 之 移动设备的触控操作