UIBarButtonItem无法在iOS 11 beta 7上点击?
关于被如此这个另外一个问题,但是这有什么关系呢,因为我觉得这跟iOS的11UIBarButtonItem无法在iOS 11 beta 7上点击?
我有这2和UIButton
S中的一个UIView
内部分组的测试版做。这个UIView被放在一个UIBarButtonItem
里面,整个事情被设置为Left Bar Button Items
,使用Interface Builder。
每个按钮在被点击时显示一个由故事板触发的弹出窗口。
我在使用Xcode 8运行iOS 9的iPad 3上测试此功能。这非常有效。
现在我决定在我的iPad Pro 9.7上运行iOS 11 beta 7进行测试。我正在使用Xcode 9 beta 6.当我在iPad Pro上运行此功能时,导航栏上的所有按钮都已停止他们不响应点击。现在,我尝试同样的Xcode 9测试版6和iPad 3的与iOS 9运行应用程序,并再次,所有美妙的工作。
我编译为iOS 9.1。
按钮甚至不会突出显示以确认轻按,就像他们在iOS 9上一样。
iOS 11 beta 7和酒吧按钮项目是否存在问题?
任何想法?
我发现了这个问题!惊人的错误!
这是演习。我添加两个按钮左侧的导航项目通过这样做:
- 创建一个视图
- 添加两个
UIButtons
该视图中。 - 将该视图添加到左侧导航项。
这被编译为iOS 9和设备上可在iOS 10以下,但没有iOS的11
这样做的“正确”的方法是这样的
- 拖动
UIButton
到左侧的导航项。 - 将另一个
UIButton
拖动到左侧导航项。
你会看到iOS允许这种情况发生,并将管理“导航项目”下的两个按钮。
这将对我从9测试的所有iOS版本一起使用直通11
我发现,同样的代码在Xcode建造8个作品以及上ios10-11,但是当我建立和Xcode 9的UIBarButtonItem定制查看不响应点击。
看起来问题出现,因为从ios 11导航栏使用autolayout而不是处理帧。屏幕上的按钮看起来不错,但在技术上看起来他们在屏幕外。
所以我的修补程序是添加自动布局约束到我的自定义视图。
//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
之后,自定义右键栏按钮接收点击成功。
非常好!谢谢!这是Apple永远不会修复的错误之一。这是我未来留给人们的一个信息,那就是处理这个错误。 – SpaceDog
@SpaceDog我续订了这个消息,解决方案仍然有效,错误仍然存在 – JuicyFruit
让水龙头:
UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(manualAdd.dismissKeyboard))
tap.cancelsTouchesInView = false // this line is required for xcode 9
view.addGestureRecognizer(tap)
没有解决我的问题。 – Harsh
它也不能修复我的。 –
我升级到iOS的11
时有同样的问题包含按钮的UIView的大小是为0x0。
我修复了界面生成器上的UIView的高度x宽度,它在那之后起作用。
我有一个类似的问题,并发现,如果我刷一下按钮,它发出的动作,很奇怪的行为。 –
看到我的答案。我发现问题 – SpaceDog