ios - 步长不均匀的 UISlider。

标签 ios objective-c ios7 uikit uislider

我需要实现如下图所示的 slider 控件

slider 将具有不均匀的长度步长。 每当用户滑动 slider 时, slider 只会停在接近当前范围的步长之一。

但真正的挑战是 UISlider 在自定义点(范围)处带有点,这些点将在最初提供。

谁能帮我实现这个功能。

最佳答案

我认为你最好不要尝试将 UISlider 改造成这个配置

如果这是我的问题,我会构建一个像这样结构的自定义 View

 DKCustomSliderView
 -> UIImageView (subview for slider head)

它实现了这样的接口(interface)。

@interface DKCustomSliderView : UIView

-(void)setStopPoints:(NSArray *)stopPoints; //array of NSNumbers between 0-1 which define indents
-(void)setSliderHeadImage:(UIImage *)sliderHeadImage; //image to use as slider head
-(void)setIndentImage:(UIImage *)indentImage; //image to use as indent marker
-(void)setTrackImage:(UIImage *)trackImage; //stretchy image to use on track 

@end

我会在 slider ImageView 上跟踪平移手势。

-(void)handlePanGesture:(UIPanGestureRecogniser *)pgr {

if(pgr.state == UIGestureRecogniserStateChanged) { 

   //am i near an indent? , if so lock me here and be slightly sticky.

}
}

DKCustomSliderView 的绘制矩形看起来有点像这样。

-(void)drawRect:(CGRect)dirtyRect {

CGRect bounds = self.bounds;

// 1. draw track across width

for(NSNumber *marker in self.stopPoints) {

//draw a instance of self.indentImage at ([marker floatValue]/bounds.size.width)

}

}

关于ios - 步长不均匀的 UISlider。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22476025/

相关文章:

ios - 添加 YahooSDK 后出错

ios7 - 如何在 iOS 7 中专门为 cocos2D 隐藏导航栏?

ios - 在编辑模式下重新排序时更改 UITableViewCell 的背景颜色

ios - 通过单击左右按钮操作将 UICollectionView 的单元格滚动到左右方向

ios - Google Places API 未返回结果

ios - 使用 asynchImageView 调用网络服务

ios - 如何在字典中附加一个浮点值作为 float ?

ios - 使用 NSDictionaries 的 NSMutableArray 对 UITableView 进行分段

ios - UICollectionView 设置列数

json - iOS 中的访问分页 - 上一个和下一个 : retrieved in JSON from facebook graph-api