我正试图在我的应用程序中模仿Apple的“Slide to Unlock”功能。我到了这一点(下面的图片),但正如你所看到的那样,UISlider的“轨道”是可见的并且掩盖了我的文字。有没有办法以编程方式更改属性,使“轨道”不可见?
如果您需要我的任何代码,请告诉我。
提前致谢!
编辑:如果我将滑块的alpha更改为0,它会摆脱我的滑动按钮,所以这样做不会起作用,除非我做错了。 :)
答案 0 :(得分:26)
这是一种更简单的方法。无需创建图像,只需实例化一个空的UIImage类:P
UIImage *clearImage = [[UIImage alloc] init];
[self.slider setMinimumTrackImage:clearImage forState:UIControlStateNormal];
[self.slider setMaximumTrackImage:clearImage forState:UIControlStateNormal];
答案 1 :(得分:25)
答案 2 :(得分:6)
可能没有办法隐藏赛道; “幻灯片解锁”的行为与UISlider不同,可能是一个自定义控件。您可能能够破解滑块控件,可能是通过将不透明度设置为低(0将使其隐藏并且不会接收到触摸),但是如果你走这条路线,你可能会有一些突破操作系统更新。对于像微软这样的兼容性,Apple并没有向后倾斜。
执行此操作的正确方法是使用自定义控件。看起来比使用UISlider更有用,但如果你将它与你花费的所有时间进行比较并且/或将花费黑客攻击UISlider,那就不是了。
要做到这一点:子类UIControl。编写自己的绘图代码,使其看起来正确(您可以重用一些现在正在做的事情)。然后注册触摸事件以移动滑块手柄:
如果你想模仿真正的解锁手柄,可以玩它并看看它的行为方式。您可能需要以不同方式响应事件(如果您在滑块路径之外拖动会发生什么)。但你应该能够得到它的要点。
答案 3 :(得分:5)
在斯威夫特:
slider.setMinimumTrackImage(UIImage(), forState: .Normal)
slider.setMaximumTrackImage(UIImage(), forState: .Normal)
答案 4 :(得分:3)
在回答上述问题时,您可以为最小和最大曲目图像设置透明的1px png。
答案 5 :(得分:3)
看起来只是将色调颜色设置为清除它...
[slider setMinimumTrackTintColor:[UIColor clearColor]];
[slider setMaximumTrackTintColor:[UIColor clearColor]];
答案 6 :(得分:2)
@Arjay Waran的答案在我看来是最好的。
继续使用它的Swift 3.0版本。
slider.minimumTrackTintColor = UIColor.clear
slider.maximumTrackTintColor = UIColor.clear
干杯
答案 7 :(得分:0)