Swift3 iOS 11 inputAccessoryView已损坏
我在视图控制器上为UIToolBar/附件视图设置了以下内容Swift3 iOS 11 inputAccessoryView已损坏,swift3,ios11,inputaccessoryview,Swift3,Ios11,Inputaccessoryview,我在视图控制器上为UIToolBar/附件视图设置了以下内容 @IBOutlet var inputFieldView: UIToolbar! override var canBecomeFirstResponder: Bool{ return true } override var inputAccessoryView: UIView?{ return self.inputFieldView } 然后在我的viewDidLoad中,我有: let seperator
@IBOutlet var inputFieldView: UIToolbar!
override var canBecomeFirstResponder: Bool{
return true
}
override var inputAccessoryView: UIView?{
return self.inputFieldView
}
然后在我的viewDidLoad中,我有:
let seperator = UIView(frame: CGRect(x:0 , y: 0, width: ScreenSize.width(), height: 1))
seperator.backgroundColor = UIColor.lightBackground
self.inputFieldView.addSubview(seperator)
self.inputFieldView.isTranslucent = false
self.inputFieldView.setShadowImage(UIImage(), forToolbarPosition: .any)
self.inputFieldView.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default)
self.inputFieldView.removeFromSuperview()
这对于ios版本10和9非常有效。这是一个带有“发送”按钮的文本视图。它位于屏幕底部,当按下时,它会成为第一个响应者,允许键盘弹出并正确定位
使用ios 11,当它位于底部时,我甚至无法单击它,因此我根本无法键入。解决了这个问题。看起来UIToolbar在iOS 11中无法正常工作 将其更改为UIView并删除
self.inputFieldView.isTranslucent = false
self.inputFieldView.setShadowImage(UIImage(), forToolbarPosition: .any)
self.inputFieldView.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default)
使其正常工作(并将其从xib中的UIToolbar更改为UIView)。这是iOS 11上的一个已知错误。UIToolbar子视图无法获取触摸事件,因为工具栏的某些内部视图未正确设置 当前的解决方法是在添加子视图之前调用toolBar.layoutIfNeeded()。 就你而言:
inputFieldView.layoutIfNeeded()
希望这将在下一个主要版本中得到修复。请显示完整的代码。我一直在努力让它出现。你是想重新制造我的问题,还是想解决你自己的问题@arvidurs@ahbou你知道这有没有雷达记录?如果可能的话,我想追踪一下