iOS Filter UIControl 子类。零图形。高度可定制。
灵感来源于国家地理:公园向导。
以下是不同变体的截图
您可以在 Youtube 上观看演示视频
Cocoapods: pod 'SEFilterControl'
手动:
在您的 XCode 项目中,将 ios-filter-control 文件夹中的 SEFilterControl.h 和 .m、SEFilterKnob.h 和 .m 拖放到您的项目中。
开始使用此新的 UIControl 子类!
它支持 iOS 5 至 iOS 8 的实时渲染,界面构建器将需要 Xcode 6.x
在某个地方,例如在 viewDidLoad 中,分配并初始化过滤器 UIControl
SEFilterControl *filter = [[SEFilterControl alloc]initWithFrame:CGRectMake(10, 20, 300, 70) Titles:[NSArray arrayWithObjects:@"Articles", @"News", @"Updates", @"Featured", @"Newest", @"Oldest", nil]];
这里使用 CGRect 和 NSStrings 的标题数组初始化我们的过滤器控制。
注意:控制的高度是预定义的,为 70,不能更改 使用 SEFilterControl_HEIGHT 常量进行参考。
然后,添加目标以处理值更改事件
[filter addTarget:self action:@selector(filterValueChanged:) forControlEvents:UIControlEventValueChanged];
别忘了实现我们稍后指定的处理程序
-(void)filterValueChanged:(SEFilterControl *) sender{
NSLog(@"%@", [NSString stringWithFormat:@"%d", sender.SelectedIndex]);
}
添加到您的 UIView
[self.view addSubview:filter];
将新的 UIView 添加到您的 xib,并将其类更新为 SEFilterControl。将 UIAction 绑定到控制器的 valueChanged 事件。享受吧 ;)
属性 | 效果 | 默认值 |
---|---|---|
progressColor | 进度条颜色 | SEFilterControl_DEFAULT_PROGRESS_COLOR |
titlesFont | 配置所有标题字体 | SEFilterControl_DEFAULT_TITLE_FONT |
titlesColor | 配置所有标题颜色 | SEFilterControl_DEFAULT_TITLE_COLOR |
titlesShadowColor | 配置所有标题阴影颜色 | SEFilterControl_DEFAULT_TITLE_SHADOW_COLOR |
属性 | 效果 | 默认值 |
---|---|---|
handlerColor | 配置旋钮颜色 | SEFilterKnob_DEFAULT_HANDLER_COLOR |
shadowColor | 配置旋钮阴影颜色 | SEFilterKnob_DEFAULT_SHADOW_COLOR |
阴影 | 启用/禁用阴影 | SEFilterKnob_DEFAULT_SHADOW |
如果将continuous设置为YES,则在用户拖动旋钮时滤波器将生成
SEFilterControl和SEFilterKnob声明了
特别感谢mash, Ltd.团队的支援。
感谢Nicolas Goutaland更新版本。
本代码由Shady Elyaski发布,受MIT许可协议保护。Shady Elyaski
当您在项目中使用此自定义UIControl时,我们很想听到您的反馈!
干杯,
Shady A. Elyaski