uibutton - UIBarButtonItem 在 iOS 11 beta 7 上不可点击?

标签 uibutton uibarbuttonitem ios11 xcode9beta6

关于此问题还有另一个问题,但这与此无关,因为我认为这与 iOS 11 的测试版有关。

我有这 2 个 UIButton,它们分组在 UIView 内。该 UIView 被放入 UIBarButtonItem 内,并使用 Interface Builder 将整个内容设置为 Left Bar Button Items

单击每个按钮时,都会显示一个由 Storyboard触发的弹出窗口。

我正在运行 iOS 9 的 iPad 3 上使用 Xcode 8 进行测试。效果非常好。

现在我决定在运行 iOS 11 beta 7 的 iPad Pro 9.7"上测试这个。我使用的是 Xcode 9 beta 6。当我在 iPad Pro 上运行这个时,导航栏上的所有按钮都失效了。它们不响应点击。现在我尝试相同的 Xcode 9 beta 6 并在装有 iOS 9 的 iPad 3 上运行该应用程序,一切都运行良好。

我正在针对 iOS 9.1 进行编译。

按钮甚至不会像 iOS 9 上那样突出显示以确认点击。

iOS 11 beta 7 和栏按钮项目是否存在问题?

有什么想法吗?

最佳答案

我发现使用 XCode 8 构建的相同代码在 ios10-11 上运行良好,但是当我使用带有自定义 View 的 XCode 9 UIBarButtonItem 构建时,不会响应点击。

看起来出现这个问题是因为从ios 11开始导航栏使用自动布局而不是处理框架。屏幕上的按钮看起来不错,但从技术上讲,它们似乎位于屏幕外。

所以我的解决方法是向我的自定义 View 添加自动布局约束。

//my custom view init
let view = MyCustomView()
view.frame = CGRect(x: 0, y: 0, width: 44, height: 44)
let rightButtonItem = UIBarButtonItem(customView: view)

//constraints
let widthConstraint = view.widthAnchor.constraint(equalToConstant: 44)
let heightConstraint = view.heightAnchor.constraint(equalToConstant: 44)

heightConstraint.isActive = true
widthConstraint.isActive = true

//add my view to nav bar 
self.rightBarButtonItem = rightButtonItem

自定义右栏按钮成功收到点击后。

关于uibutton - UIBarButtonItem 在 iOS 11 beta 7 上不可点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45854203/

相关文章:

iphone - 如何从子类向父类中定义的变量传递值?

ios - 无法识别的选择器发送到实例 tableview swift

ios - 是否可以在 Objective C 中获取 UIButton.layer.borderColor 的值

ios - iOS App Store 现在支持动态下载代码。我该如何实现?

iOS 11 评论页面打不开

ios - 如果 TextField 为空,则禁用按钮

uinavigationbar - 使 uibarbuttonitem 淡出

swift - 从 UISearchBar 更改 UIBarButtonItem

iphone - 如何旋转 UIBarButtonItem?

ios - 在 iOS 11 中从我的应用程序打开设置应用程序中的特定项目