安装
只需将 MessageViewController
添加到 Podfile 并安装。完成!
pod 'MessageViewController'
配置
您必须继承 MessageViewController
。
import MessageViewController
class ViewController: MessageViewController {
// ...
}
使用 UIScrollView
完成 setup。记住这也可以是一个 UITableView
或 UICollectionView
。
func viewDidLoad() {
super.viewDidLoad()
setup(scrollView: scrollView)
}
自定义
您可以自定义您想要的任何 UI 部分!
// Border between the text view and the scroll view
borderColor = .lightGray
// Change the appearance of the text view and its content
messageView.inset = UIEdgeInsets(top: 8, left: 16, bottom: 8, right: 16)
messageView.textView.placeholderText = "New message..."
messageView.textView.placeholderTextColor = .lightGray
messageView.font = .systemFont(ofSize: 17)
// Setup the button using text or an icon
messageView.set(buttonTitle: "Send", for: .normal)
messageView.addButton(target: self, action: #selector(onButton))
messageView.buttonTint = .blue
// Set custom attributes for an autocompleted string
let tintColor = .blue
messageAutocompleteController.autocompleteTextAttributes = ["@": [.font: UIFont.preferredFont(forTextStyle: .body), .foregroundColor: tintColor, .backgroundColor: tintColor.withAlphaComponent(0.1)]]
自动完成
基本视图控制器使用一个 MessageAutocompleteController
控件来处理文本自动完成。
此控件使用一个普通的 UITableView
来显示其自动完成。添加一个 dataSource
和 delegate
来显示和处理交互。
let tableView = messageAutocompleteController.tableView
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
tableView.dataSource = self
tableView.delegate = self
然后注册您想要响应的自动完成前缀,并设置一个 delegate
来处理找到前缀的情况。
messageAutocompleteController.register(prefix: "@")
messageAutocompleteController.delegate = self
您的代理需要实现一个方法。
func didFind(controller: MessageAutocompleteController, prefix: String, word: String) {
// filter your data
controller.show(true)
}
注意:您可以进行异步的自动完成搜索。只需确保完成时调用
messageAutocompleteController.show()
即可。
致谢
- 深受SlackTextViewController启发
- 使用
❤️ 由 Ryan Nystrom 创建