iOS 11.0 GM:UINavigationItem 的 titleView 的子视图收不到触摸事件?
iOS 11.0 GM: Subviews of UINavigationItem's titleView don't receive touch events?
在 iOS 的所有版本中 — 包括 iOS 11.0 的每个测试版,除了 GM,15A372 — UINavigationItem
的 titleView
内部的视图会收到触摸正常事件,使得标题视图中有按钮成为可能。
在版本 15A372 中,titleView
的子视图不接收任何触摸事件,因此该视图中的按钮无用。我已经用设备和模拟器进行了测试 运行 iOS 10 并且没有看到这种行为。我已经打开 rdar://34499607
关于这个问题,当我收到回复时会更新这个问题,但我想知道是否有其他人遇到过这个问题,或者有任何临时解决方案。
Apple 的 documentation about the titleView
property 特别指出 "custom views can contain buttons," 使此更改令人困惑。
如果这是预期的行为,令人气愤的是,他们一直等到 almost-literal 最后一刻才做出这一重大改变,却忽略将其包含在任何文档或发行说明中。
你可以看到这个问题link
只需在您的视图中覆盖 intrinsicContentSize 属性:
导入 UIKit
class 标题视图:UIView {
override var intrinsicContentSize: CGSize {
return CGSize(width: 400, height: 55)
}
}
在 iOS 的所有版本中 — 包括 iOS 11.0 的每个测试版,除了 GM,15A372 — UINavigationItem
的 titleView
内部的视图会收到触摸正常事件,使得标题视图中有按钮成为可能。
在版本 15A372 中,titleView
的子视图不接收任何触摸事件,因此该视图中的按钮无用。我已经用设备和模拟器进行了测试 运行 iOS 10 并且没有看到这种行为。我已经打开 rdar://34499607
关于这个问题,当我收到回复时会更新这个问题,但我想知道是否有其他人遇到过这个问题,或者有任何临时解决方案。
Apple 的 documentation about the titleView
property 特别指出 "custom views can contain buttons," 使此更改令人困惑。
如果这是预期的行为,令人气愤的是,他们一直等到 almost-literal 最后一刻才做出这一重大改变,却忽略将其包含在任何文档或发行说明中。
你可以看到这个问题link
只需在您的视图中覆盖 intrinsicContentSize 属性:
导入 UIKit
class 标题视图:UIView {
override var intrinsicContentSize: CGSize {
return CGSize(width: 400, height: 55)
}
}