BMASliders 1.0.0

BMASliders 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2015 年 3 月

Rafael Lopez Diez 进行维护。



  • 作者
  • Diego Sanchez

BMASliders 是一套可重用的滑动条。它包括两种滑动条,一种是可自定义范围的 -BMARangeSlider- 以及一个更简单的 -BMASlider- 还包括其标签对应的滑动条 -BMALabeledRangeSliderBMALabeledSlider

功能

  • 在 Interface Builder 中实时渲染
  • 可配置处理器的最小距离
  • 允许只有离散值
  • 溢出信号
  • 可配置外观

如何使用

BMALabeledRangeSlider

BMALabeledRangeSlider 提供了一个带有标题和选定范围详细信息的范围滑动条。您可以使用 Interface Builder 中的 属性检查器来配置其许多属性。或者,您可以在代码中如下初始化

self.labeledRangeSlider.minimumValue = 0.;
self.labeledRangeSlider.maximumValue = 130.;
self.labeledRangeSlider.currentLowerValue = 30.;
self.labeledRangeSlider.currentUpperValue = 70.;
self.labeledRangeSlider.step = 1.;
self.labeledRangeSlider.minimumDistance = 4.;  // between handlers
self.labeledRangeSlider.style = [[BMASliderLiveRenderingStyle alloc] init];
self.labeledRangeSlider.title = [[NSAttributedString alloc] initWithString:@"My title"];
self.labeledRangeSlider.rangeFormatter = self.myRangeFormatter;
[self.labeledRangeSlider addTarget:self action:@selector(valueChanged) forControlEvents:UIControlEventValueChanged];

所有内容都应不言而喻,但 rangeFormatterstyle。对于 rangeFormatter,您必须提供一个符合 BMARangeFormatter 协议的对象。

@protocol BMARangeFormatter <NSObject>
@property (nonatomic) BOOL hasLowerValue;
@property (nonatomic) CGFloat lowerValue;
@property (nonatomic) CGFloat upperValue;
@property (nonatomic, getter=isOverflow) BOOL overflow;

- (NSAttributedString *)formattedString;
@end

当选定的范围发生变化时,BMALabeledRangeSlider 将设置属性 hasLowerValuelowerValueupperValueoverflowrangeFormatter 实例,并将请求字符串表示的范围是通过调用 formattedString

对于 style 属性,您必须提供一个返回处理器和线条背景图像的实例。如果没有提供自己的样式,则默认使用 BMASliderLiveRenderingStyle

@protocol BMASliderStyling <NSObject>
- (UIImage *)unselectedLineImage;
- (UIImage *)selectedLineImage;
- (UIImage *)handlerImage;
@end

为了方便起见,BMASliders 支持 UIAppearance 协议,因此您可以轻松地为应用中的所有滑动条设置样式。

[BMARangeSlider appearance].style = [[BMASliderDefaultStyle alloc] init];
[BMASlider appearance].style = [[BMASliderDefaultStyle alloc] init];

BMALabeledSlider

BMALabeledRangeSlider 提供了一个带有标题和选定范围详细信息的范围滑动条。它与 BMALabeledRangeSlider 工作原理相似,但它只需要 currentValue

self.labeledSlider.minimumValue = 0.;
self.labeledSlider.maximumValue = 130.;
self.labeledSlider.currentValue = 60.;
self.labeledSlider.style = [[BMASliderDefaultStyle alloc] init];
self.labeledSlider.title = [[NSAttributedString alloc] initWithString:@"My title"];
self.labeledSlider.rangeFormatter = self.myRangeFormatter;
[self.labeledSlider addTarget:self action:@selector(valueChanged) forControlEvents:UIControlEventValueChanged];

请注意,rangeFormatter 必须再次符合 BMARangeFormatter 协议。在这种情况下,滑动条将 hasLowerValue 设置为 false,并将 currentValue 分配给 upperValue 属性。

BMARangeSlider 和 BMASlider

这些是 BMALabeledRangeSliderBMALabeledSlider 的非标签对应物。它们没有任何 titlerangeFormatter,因此它们更容易配置,并可用于渲染自定义布局。

实时渲染

BMASliders利用了IBInspectableIBDesignable指令,这使得您可以在Interface Builder中看到组件的渲染效果,并通过使用属性检查器来改变滑块的属性。

安装方式

手动安装

  1. 克隆、添加为子模块或下载。
  2. Component目录下的所有文件添加到您的项目中。
  3. 确保您的项目配置为使用ARC。

许可证

源代码以MIT许可证分发。