我在视图控制器上为我的UIToolBar /附件视图设置了以下设置
@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中,当它位于底部时,我甚至不能点击它,所以我根本无法打字。
发布于 2017-09-22 19:45:04
解决了。看起来UIToolbar的UIToolbar在iOS 11中不能正常工作。
将其更改为UIView并删除
self.inputFieldView.isTranslucent = false
self.inputFieldView.setShadowImage(UIImage(), forToolbarPosition: .any)
self.inputFieldView.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default)
使其正常工作(并将其从xib中的UIView更改为UIToolbar )。
发布于 2017-10-16 08:59:57
这是iOS 11上的一个已知错误。UIToolbar子视图无法获得触摸事件,因为工具栏上的一些内部视图没有正确设置。
当前的解决方法是在添加子视图之前调用toolBar.layoutIfNeeded()。
就你而言:
inputFieldView.layoutIfNeeded()
希望这将在下一个主要版本上得到解决。
https://stackoverflow.com/questions/46371441
复制相似问题