我正在尝试创建一个大拇指UISlider,它的好处是可以在时间线上显示当前进度的一些细节。

然而,我在让拇指从最左边开始到最右边的时候遇到了很大的麻烦(甚至对UISlider进行了子类化)。似乎拇指无法退出UISlider的帧大小。我已经尝试了子类化和实现
- (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value
CGRect result = [super thumbRectForBounds:bounds trackRect:rect value:value];
result = CGRectOffset(result, -100, -125);
return result;
}以这种方式工作,但在此示例中(例如,使用负x偏移),滑块在大约一半的轨迹处停止在右侧。我认为实现此方法的正确方法是使用动态x偏移量,它取决于轨迹的值。
我只是想确保我没有错过一个大洞或一个简单的方法来完成这一点,它不涉及自定义图像视图,跟随滑块,等等。
有什么想法吗?
谢谢
发布于 2013-06-03 20:54:27
您是否将clipsToBounds:设置为no?我记得大约18个月前,我不得不为一个项目这样做,但由于在每一轮反馈之后都会发生大量的定制,我只是使用UIViews和UIPanGestureRecognizer编写了自己的滑块;工作更多,但更容易定制。
https://stackoverflow.com/questions/16896319
复制相似问题