OBSlider 1.1.1

OBSlider 1.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2015年4月

Ole Begemann 维护。



OBSlider 1.1.1

  • Ole Begemann

UISlider 的子类,它将变量拖动速度(如 iOS 上的 iPod 应用所示)添加到 UISlider

Ole Begemann 编写于 2011 年 1 月。

用法

OBSlider.hOBSlider.m 拷贝到您的项目,并在您使用 UISlider 的任何地方实例化一个 OBSlider。如果您在 Interface Builder 中创建滑块,请在“身份”标签上将它的类设置为 OBSlider

滑块默认支持变量拖动速度。在您分配给 UIControlEventValueChanged 的动作方法中,您可以访问 scrubbingSpeed 变量以获取当前的拖动速度。scrubbingSpeed 是一个浮点数,其中 `1.0f` 是正常拖动速度。

要修改用户触摸的哪个垂直偏移位置应该设置哪个拖动速度,您可以修改 scrubbingSpeedsscrubbingSpeedChangePositions 数组。这两个数组应包含相同数量的对象。scrubbingSpeedChangePositions 应指示应该按顺序发生拖动速度更改的垂直偏移量。此数组中的第一个条目始终应该是 [NSNumber numberWithFloat:0.0f]scrubbingSpeeds 应包含与偏移位置对应的实际拖动速度值。

这两个数组的默认值如下

scrubbingSpeeds = [NSArray arrayWithObjects:
 [NSNumber numberWithFloat:1.0f],
 [NSNumber numberWithFloat:0.5f],
 [NSNumber numberWithFloat:0.25f],
 [NSNumber numberWithFloat:0.1f],
 nil];

scrubbingSpeedChangePositions = [NSArray arrayWithObjects:
 [NSNumber numberWithFloat:0.0f],
 [NSNumber numberWithFloat:50.0f],
 [NSNumber numberWithFloat:100.0f],
 [NSNumber numberWithFloat:150.0f],
 nil];

(即,当用户向上/向下移动 50.0/100.0/150.0 个点时,拖动速度从 100% 变为 50%,再变为 25%,最后变为 10%)

要求

OBSlider 1.0.0(标记为 1.0.0)在 iOS 3.0+ 中工作。

在版本 1.1.0(标记为 1.1.0)中,我将源代码转换为自动引用计数(ARC),并将演示应用的目标部署版本提升到 iOS 5.0。如果您想支持更早的 iOS 版本,请查看 1.0.0 标签。

演示

在 Xcode 中打开演示项目 OBSliderDemo.xcodeproj 并在 iPhone 或 iPhone 模拟器上运行它。拖动滑块,在拖动的同时,上下移动您的手指来调整拖动速度。

未测试

该类基本上未经过测试。请通过 GitHub 的问题跟踪器报告错误。

许可证

MIT 许可证。您可以在您的商业和非商业项目中使用此代码。

贡献者

  • Ole Begemann
  • David Linsin:iOS 3.x 兼容性
  • Sylver Bruneau:与iPod.app类似的可滑动行为(当你向滑动条拖动时,滑块上的指针会与你的手指在滑动条处相遇)
  • Brad Sokol:当用户将手指滑回滑动条时,更能精确地定位滑块位置

谢谢!