我有一个在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,视图中的textfield无响应,因为父视图没有定义大小。
override var intrinsicContentSize: CGSize {
return CGSize.zero
}
autoresizingMask = .flexibleHeight
在下面的图片中,您可以看到我的所有控件现在都在safeAreaLayout之上,但它们没有响应。 sample image
如果您不理解,请告诉我。请提前帮助你。
答案 0 :(得分:0)
尝试在“inputTextField”
中添加一个顶部锚点{{\Illuminate\Support\Facades\Auth::guard('admin')->user()->unreadNotifications()->count()}}
我可能错了但不知道顶部在哪里'ChatInputContainerView'的高度为零。