【发布时间】:2020-12-22 18:14:58
【问题描述】:
这是要求
- 基本聊天应用程序,在
UICollectionViewController的键盘顶部有一个输入附件视图 - 我使用
override var inputAccessoryView添加了这个自定义输入附件视图,并在这个函数中返回了自定义视图 - 我有一个需求,我需要替换此
inputAccessoryView在某个特定功能的某个时间点用另一个自定义输入附件视图
我的尝试
-
问题 1:我尝试了
removeFromSuperView(),但在键盘上方留下了一个空白区域,等于已删除视图的高度,这可能是错误的 - 问题 2:如何再次调用 override 方法并返回另一个自定义输入附件视图?
这是我添加第一个输入附件视图的方法
lazy var customInputAccessoryViewNumberOne: KeyboardView = {
let civ = KeyboardView(frame: .init(x: 0, y: 0, width: view.frame.width, height: 50))
civ.sendButton.addTarget(self, action: #selector(handleSend), for: .touchUpInside)
return civ
}()
override var inputAccessoryView: UIView? {
get {
return customInputAccessoryViewNumberOne
}
}
现在当用户点击按钮时,我需要完全替换 customInputAccessoryViewNumberOne 为customInputAccessoryViewNumberTwo
@objc func handleNewInputAccessoryViewPressed() {
//how to remove customInputAccessoryViewNumberOne?
//how to add customInputAccessoryViewNumberTwo?
}
【问题讨论】: