MessageViewController 0.2.1

MessageViewController 0.2.1

Ryan Nystrom 维护。



  • Ryan Nystrom

安装

只需将 MessageViewController 添加到 Podfile 并安装。完成!

pod 'MessageViewController'

配置

您必须继承 MessageViewController

import MessageViewController

class ViewController: MessageViewController {
  // ...
}

使用 UIScrollView 完成 setup。记住这也可以是一个 UITableViewUICollectionView

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 来显示其自动完成。添加一个 dataSourcedelegate 来显示和处理交互。

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() 即可。

致谢