请不要投票将尽力解释问题。
我有一个在iphone x之前工作正常的InputAccessoryView,在iphone x中我的inputAssesoryView显示在layoutguide下面的最底部。我发现以下解决方案inputAccessoryView Iphone X
在从上面链接的想法后,我可以将我的文本字段放在布局guid之上,但它变得没有反应。这是因为没有为inputAccessoryView视图定义帧大小。
class ChatInputContainerView: UIView, UITextFieldDelegate {
override var intrinsicContentSize: CGSize {
return CGSize.zero
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
lazy var inputTextField: UITextField = {
let textField = UITextField()
textField.placeholder = "Enter message..."
textField.translatesAutoresizingMaskIntoConstraints = false
textField.delegate = self
return textField
}()
override init(frame: CGRect) {
super.init(frame: frame)
autoresizingMask = .flexibleHeight
self.inputTextField.leftAnchor.constraint(equalTo: rightAnchor, constant: 8).isActive = true
self.inputTextField.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor).isActive = true
self.inputTextField.rightAnchor.constraint(equalTo: leftAnchor).isActive = true
self.inputTextField.heightAnchor.constraint(equalTo: heightAnchor).isActive = true
}
}
以下是我使用inputAccessory View的控制器
class chatController: UITextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
}
lazy var inputContainerView: ChatInputContainerView = {
// let chatInputContainerView = ChatInputContainerView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 50))
let chatInputContainerView = ChatInputContainerView()
chatInputContainerView.chatLogController = self
return chatInputContainerView
}()
override var inputAccessoryView: UIView? {
get {
return inputContainerView
}
}
override var canBecomeFirstResponder : Bool {
return true
}
}
以前我使用以下代码来获取InputAccessoryView的大小,该视图将视图置于底部并具有修复高度。
let chatInputContainerView = ChatInputContainerView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 50))
但现在我使用以下设置inputAccessoryView不能正常工作,视图中的文本字段变得无响应,因为父视图没有大小定义。
override var intrinsicContentSize: CGSize {
return CGSize.zero
}
autoresizingMask = .flexibleHeight
在下面的图像中,您可以看到我的所有控件现在都在safeAreaLayout之上,但它们没有响应。 sample image
如果你不明白,请告诉我。请提前帮助谢谢。
尝试在“inputTextField”中添加顶部锚点
self.inputTextField.topAnchor.constraint(equalTo: topAnchor).isActive = true
我可能错了,但不知道顶部是什么'ChatInputContainerView'将具有零高度。