iOS 11 inputAccessoryView 损坏
iOS 11 inputAccessoryView broken
我在视图控制器上为我的 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 非常有用。它是带有 "Send" 按钮的文本视图。它位于屏幕底部,按下时会成为第一响应者,允许键盘出现并正确定位。
使用 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()
希望这会在下一个主要版本中得到修复。
我在视图控制器上为我的 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 非常有用。它是带有 "Send" 按钮的文本视图。它位于屏幕底部,按下时会成为第一响应者,允许键盘出现并正确定位。
使用 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()
希望这会在下一个主要版本中得到修复。