LUAutocompleteView
易于使用且可高度配置的自动完成视图,可以附加到任何 UITextField
安装
CocoaPods
CocoaPods 是 Cocoa 项目的依赖项管理器。您可以使用以下命令安装它
$ sudo gem install cocoapods
需要 CocoaPods 1.7.0+。
要使用 CocoaPods 将 LUAutocompleteView
集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!
target '<Your Target Name>' do
pod 'LUAutocompleteView'
end
然后,运行以下命令
$ pod install
Carthage
您可以通过将其添加到您的 Cartfile
来使用 Carthage 安装 LUAutocompleteView
github "LaurentiuUngur/LUAutocompleteView" ~> 4.0
然后运行 carthage update
.
如果您在项目中第一次使用 Carthage,您需要按照 Carthage 中解释的步骤进行一些额外的步骤。
Swift 包管理器
要使用 Apple 的 Swift 包管理器 进行集成,请将以下内容添加到您的 Package.swift
中作为依赖项
.Package(url: "https://github.com/LaurentiuUngur/LUAutocompleteView", majorVersion: 4)
以下是一个 PackageDescription
的示例
import PackageDescription
let package = Package(name: "MyApp",
dependencies: [
.Package(url: "https://github.com/LaurentiuUngur/LUAutocompleteView", majorVersion: 4)
])
手动
如果您不希望使用上述提到的任何依赖项管理器,您可以将 LUAutocompleteView
手动集成到您的项目中。
用法
- 将
LUAutocompleteView
导入您的项目。
import LUAutocompleteView
- 将您要附加自动完成视图的
textField
属性分配给您想要的textField
。
autocompleteView.textField = textField
- 设置数据源和代理。
autocompleteView.dataSource = self
autocompleteView.delegate = self
- 实现
LUAutocompleteViewDataSource
和LUAutocompleteViewDelegate
协议。
// MARK: - LUAutocompleteViewDataSource
extension ViewController: LUAutocompleteViewDataSource {
func autocompleteView(_ autocompleteView: LUAutocompleteView, elementsFor text: String, completion: @escaping ([String]) -> Void) {
let elementsThatMatchInput = elements.filter { $0.lowercased().contains(text.lowercased()) }
completion(elementsThatMatchInput)
}
}
// MARK: - LUAutocompleteViewDelegate
extension ViewController: LUAutocompleteViewDelegate {
func autocompleteView(_ autocompleteView: LUAutocompleteView, didSelect text: String) {
print(text + " was selected from autocomplete view")
}
}
定制
- 通过继承
LUAutocompleteTableViewCell
创建您自定义的自动完成单元。 - 重写从
LUAutocompleteTableViewCell
中继承的func set(text: String)
,该方法在每个要由单元格显示给定文本时被调用。
import UIKit
import LUAutocompleteView
final class CustomAutocompleteTableViewCell: LUAutocompleteTableViewCell {
// MARK: - Base Class Overrides
override func set(text: String) {
textLabel?.text = text
textLabel?.textColor = .red
}
}
- 将自定义的自动完成单元格分配给
autocompleteCell
属性。
autocompleteView.autocompleteCell = CustomAutocompleteTableViewCell.self
更多用法详情请参考示例应用
需求
- Xcode 10.2+
- Swift 5.0+
- iOS 9.0+
作者
许可协议
- LUAutocompleteView 在 MIT 许可协议下可用。