Can*_*ğlu 14 objective-c uislider ios ios6 ios7
I have an app that runs perfectly on iOS 6. I've set a blinking effect to a UISlider's thumb this way:
-(void)startBlinkingSlider{
isSliderBlinking = YES;
isSliderTinted = NO;
[self performSelector:@selector(toggleSliderColor) withObject:nil afterDelay:0.2];
}
-(void)toggleSliderColor{
if(isSliderBlinking){
if(isSliderTinted){
self.effectAmountSlider.thumbTintColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1];
}else{
self.effectAmountSlider.thumbTintColor = [UIColor colorWithRed:255 green:0 blue:0 alpha:1];
}
isSliderTinted = !isSliderTinted;
[self performSelector:@selector(toggleSliderColor) withObject:nil afterDelay:0.2];
}
}
-(void)stopBlinkingSlider{
isSliderBlinking = NO;
isSliderTinted = NO;
self.effectAmountSlider.thumbTintColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1];
}
Run Code Online (Sandbox Code Playgroud)
当我调用startBlinkingSlider
我的滑块时,在iOS 6中开始闪烁红色.如果我在iOS 7设备上运行相同的应用程序,则没有任何反应.滑块的拇指保留其原始的白色.我在我设置的行上设置了一个断点thumbTintColor
.在调试器中,这是我得到的:
(lldb) po self.effectAmountSlider.thumbTintColor
error: failed to get API lock
(lldb) po self.effectAmountSlider.thumbTintColor
UIDeviceRGBColorSpace 0 0 0 1
(lldb)
Run Code Online (Sandbox Code Playgroud)
我键入了完全相同的代码,并在第一个中得到了一个奇怪的消息.但是,第二个结果是正确的.然后在将其设置为红色后,我也得到了正确的结果:
(lldb) po self.effectAmountSlider.thumbTintColor
UIDeviceRGBColorSpace 1 0 0 1
Run Code Online (Sandbox Code Playgroud)
即使调试器显示正确的值,我也没有在滑块中看到任何视觉上的变化.它仍然是白色,颜色不会以任何方式改变.我在这里搜索了Apple的文档:https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/Controls.html
它没有说UISlider的thumbTintColor不能用作iOS 6.它应该按预期保持工作.我检查了线程,一切都在主线程上运行.toggleSliderColor
总是在主线程上,所以它不是一个线程问题.为什么我的拇指颜色不起作用?
谢谢,可以.
aar*_*sti 19
我发现了一种解决方法.首先调用'setThumbImage:forState:'方法,'thumbTintColor'属性将生效.
[self.slider setThumbImage:[UIImage imageNamed:@"Thumb.png"]
forState:UIControlStateNormal];
self.slider.thumbTintColor = [UIColor blackColor];
Run Code Online (Sandbox Code Playgroud)
我在iOS模拟器的7.0版(463.9.4.2)上测试了这个.
Dav*_*d H 11
我iOS 7 UI Transition Guide
今天早上又碰巧再读一遍,然后在一份声明中绊倒了Slider
.如果EITHER maximumTrackTineColor
OR thumbTintColor
为nil,则忽略这两个属性.所以我试着设置所有的色调,拇指仍然是白色.
我输入了一个关于此的错误报告 - #15277127 - 如果您输入自己的错误,请参考它.越多的bug报告苹果很快就会修复它.
编辑:苹果公司将我的虫子骗到了另一个 - 这显然是在不久前知道的.
小智 10
根据@ aaronsti的回答,我发现以下内容对我有用.将拇指图像设置为nil
无效.
[_slider setThumbImage:[_slider thumbImageForState:UIControlStateNormal] forState:UIControlStateNormal];
_slider.minimumTrackTintColor = minTintColor;
_slider.thumbTintColor = thumbTintColor;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11994 次 |
最近记录: |