iOS – iPhone:UISlider轨迹图像随机消失

我有一个定制的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属性而不是[slider setValue:animated:]方法设置滑块的值。 我也没有理智地检查设定的值。

解决问题已解决了这个问题。

我是第二个“答案”,并希望esp。 指出关于理智检查价值观的一点。 我认为使用slider.value或[slider setValue]并不重要,将其设置为NaN意味着iOS5中的背景消失。

注意:如果您正在使用iPod库并询问当前位置,那么将NaN作为返回值可能会经常发生。

我有同样的问题,它是由重复资源引起的。 如果它是在xCode中重命名recources,请在Build Phases中检查它。

NaN也是我的问题,但它比我想象的还要糟糕……在iOS5上,甚至将UISlider设置为NAN一次,似乎永远打破了控制实例令人惊讶并花了一点时间追踪。