iOS - iPhone:UISlider跟踪图像随机消失
我有一个定制的UISlider,它的轨道图像有时会消失。它随机发生,当它的父视图控制器被推到可见(我从来没有看到它实际上消失)。iOS - iPhone:UISlider跟踪图像随机消失
这里是我设置的UISlider代码:
timeSlider = [[UISlider alloc] initWithFrame:CGRectMake(55, 8, 210, 23)];
timeSlider.backgroundColor = [UIColor clearColor];
UIImage *blutrackImg = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"bluetrack" ofType:@"png"]];
UIImage *whitetrackImg = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"whitetrack" ofType:@"png"]];
//UIEdgeInsetsMake(top,left,bottom,right)
UIImage *stetchLeftTrack = [blutrackImg stretchableImageWithLeftCapWidth:9.0 topCapHeight:0.0];
UIImage *stetchRightTrack = [whitetrackImg stretchableImageWithLeftCapWidth:9.0 topCapHeight:0.0];
[timeSlider setThumbImage: [UIImage imageNamed:@"whiteslide2.png"] forState:UIControlStateNormal];
[timeSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[timeSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
timeSlider.continuous = NO;
[timeSlider addTarget:self action:@selector(trackTime:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:timeSlider];
我建立在iOS 5.0。有没有人遇到过这样的事情?
发现的解决方案:我相信这个问题所引起的下列错误:
我有一个计时器,用的是slider.value财产,而不是设定滑块的值滑块的setValue:动画:]方法。我也没有检查设定的价值。
解决问题解决了这个问题。
我第二个“答案”,并希望尤其。指出关于理智检查价值的一点点。如果您使用slider.value或[slider setValue],将它设置为NaN意味着iOS5中的背景消失,我认为这不重要。
注意:获取NaN作为返回值,如果您使用iPod库并询问当前位置,则经常会发生这种情况。
这正是我的问题,而不是setValue之一。非常感谢。 – user1122025 2012-09-11 19:23:56
我有同样的问题,这是由重复资源造成的。如果它在xCode中重命名recources,请在Build Phases中检查它。
NaN也是我的问题,但它比我预期的要糟......甚至在iOS5上将UISlider设置为NAN一次,似乎永远打破了该控件的实例令人惊讶,并花了一点时间来追踪。
正如DreamTimeStudioZ下面提到的,主要问题在于智能检查,而不是setValue。非常感谢发布您的解决方案:) – user1122025 2012-09-11 19:24:59