我们建议使用 CocoaPods 来安装我们的库。
只需将此添加到您的 Podfile
中
pod 'RAMReel'
或者 Carthage 用户可以简单地将 reel-search
添加到他们的 Cartfile
中
github "Ramotion/reel-search"
为了使用我们的控件,您需要实现以下内容
CellClass
:您的 cell 类必须继承自 UICollectionViewCell
并实现 ConfigurableCell
协议。或者您可以直接使用我们预定义的类 RAMCell
。TextFieldClass
:任何 UITextField
的子类都可以。DataSource
:您的类型必须实现 FlowDataSource
协议,其中 QueryType
为 String
,ResultType
为 Renderable
和 Parsable
。或者您可以直接使用我们预定义的类 SimplePrefixQueryDataSource
,它的 ResultType
设置为 String
。现在您可以将这些类型用作 RAMReel
类型声明的泛型参数
RAMReel<CellClass, TextFieldClass, DataSource>
接下来,您需要创建一个 RAMReel
实例,为此您需要以下内容
frame: CGRect
:Rect,指定您想要放置控件的位置。dataSource: DataSource
:reel 的数据源。placeholder: String
(可选):占位符文本;默认情况下,使用空字符串。hook: DataSource.ResultType -> Void
(可选):元素选择时要执行的操作,默认为 nil
。如果需要执行多个操作,您可以稍后添加额外的 hook。让我们用它来创建一个 RAMReel
实例
let ramReel = RAMReel<CellClass, TextFieldClass, DataSource>(frame: frame, dataSource: dataSource, placeholder: placeholder, hook: hook)
要添加额外的操作,您可以将 DataSource.ResultType -> Void
函数附加到 RAMReel
对象属性 hooks
ramReel.hooks.append { data in
// your code goes here
}
最后一步,在您的视图上显示 RAMReel
ramReel.view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
yourView.addSubview(ramReel.view)
如果您遇到视觉问题,请尝试在显示视图之前调用 prepareForViewing
。
像这样
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
ramReel.prepareForViewing()
}
如果您想更改 RAMReel
的外观,您可以使用主题。
为此,您只需在您的类/结构中实现 Theme
协议,并将您的 RAMReel
对象的 theme
属性设置为您的主题。
或者您可以直接使用 RAMTheme
类型的预定义实例。
let textColor: UIColor
let listBackgroundColor: UIColor
let font: UIFont
let theme = RAMTheme(textColor: textColor, listBackgroundColor: listBackgroundColor, font: font)
请参阅 RAMReel 文档 以了解更多信息
Reel Search 在 MIT 许可证下发布。有关详细信息,请参阅 LICENSE。
这个库是我们 精选最佳 UI 开源项目 的一部分。
如果您在您的项目中使用此开源库,请确保注明出处并反向链接到 www.ramotion.com
在我们的 iOS 应用程序中尝试此 UI 组件以及更多类似组件。如有兴趣,请联系我们。