sud*_*-rf 20 iphone objective-c opacity uislider
我正试图在我的应用程序中模仿Apple的"Slide to Unlock"功能.我到了这一点(下面的图片),但正如你所看到的那样,UISlider的"轨道"是可见的并且掩盖了我的文字.有没有办法以编程方式更改属性,使"轨道"不可见?
如果您需要我的任何代码,请告诉我.
提前致谢!
编辑:如果我将滑块的alpha更改为0,它将摆脱我的滑动按钮,所以这样做不会起作用,除非我做错了.:)
Ale*_*ian 26
这是一个更简单的方法.无需创建图像,只需实例化一个空的UIImage类:P
UIImage *clearImage = [[UIImage alloc] init];
[self.slider setMinimumTrackImage:clearImage forState:UIControlStateNormal];
[self.slider setMaximumTrackImage:clearImage forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
sud*_*-rf 25
其实我只想出来了.这是我做的:
UIImage *sliderMinimum = [[UIImage imageNamed:@"clearTrack.png"] stretchableImageWithLeftCapWidth:4 topCapHeight:0];
[slider setMinimumTrackImage:sliderMinimum forState:UIControlStateNormal];
UIImage *sliderMaximum = [[UIImage imageNamed:@"clearTrack.png"] stretchableImageWithLeftCapWidth:4 topCapHeight:0];
[slider setMaximumTrackImage:sliderMaximum forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
clearTrack.png
只是我制作的一个清晰的滑块图像.
现在我有这个:耶!
可能没有办法隐藏轨道; "幻灯片解锁"的行为与UISlider不同,可能是一个自定义控件.您可能能够破解滑块控件,可能通过将不透明度设置为低(0将使其隐藏并且不会接收到触摸),但是如果您走这条路线,您可能会在操作系统更新后中断.Apple不会像微软那样向后兼容兼容性.
正确的方法是使用自定义控件.看起来比使用UISlider更有用,但如果你将它与你花费的所有时间和/或将用于攻击UISlider进行比较,那就不是了.
要做到这一点:子类UIControl.编写自己的绘图代码,使其看起来正确(您可以重用一些现在正在做的事情).然后注册触摸事件以移动滑块手柄:
如果你想模仿真正的解锁手柄,可以玩它并看看它的行为方式.您可能需要以不同方式响应事件(如果您在滑块路径之外拖动会发生什么).但你应该能够得到它的要点.
在Swift中:
slider.setMinimumTrackImage(UIImage(), forState: .Normal)
slider.setMaximumTrackImage(UIImage(), forState: .Normal)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7686 次 |
最近记录: |