我正在构建一个聊天应用程序,它在屏幕底部有一个浮动文本输入字段(类似于iMessage应用程序)。
我通过创建ChatInputViewController
来实现这一目标,UIInputViewController
是UIInputView
的子类,其中包含textView
,其中包含ChatViewController
。
在我的主UIInputViewController
中,我会覆盖以下属性以显示我的自定义class ChatViewController: UIViewController {
override var inputAccessoryViewController: UIInputViewController? {
return chatInputViewController
}
override var canBecomeFirstResponder: Bool {
return true
}
...
}
:
inputView
问题在于:我还有一个自定义输入视图,当用户点击帮助图标时会显示该视图。自定义输入视图使用Autolayout布局,并且显式高度约束设置为等于键盘的高度。出现时,此视图会在键盘就位时切换出来。我这样做是通过设置textView
的{{1}}属性然后调用textView.reloadInputViews()
来实现的。这适用于除iPhone X之外的所有设备,而inputView则扩展为覆盖整个屏幕。
控制台中没有记录自动布局限制。 ChatInputViewController
和HelpInputViewController
在其allowSelfSizing
和inputView
已启用translatesAutoresizingMaskIntoConstraints
时已启用.csv
。任何想法都将不胜感激。