2012-02-16 109 views
4

我有一個定製的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。有沒有人遇到過這樣的事情?

回答

8

發現的解決方案:我相信這個問題所引起的下列錯誤:

我有一個計時器,用的是slider.value財產,而不是設定滑塊的值滑塊的setValue:動畫:]方法。我也沒有檢查設定的價值。

解決問題解決了這個問題。

+0

正如DreamTimeStudioZ下面提到的,主要問題在於智能檢查,而不是setValue。非常感謝發佈您的解決方案:) – user1122025 2012-09-11 19:24:59

5

我第二個「答案」,並希望尤其。指出關於理智檢查價值的一點點。如果您使用slider.value或[slider setValue],將它設置爲NaN意味着iOS5中的背景消失,我認爲這不重要。

注意:獲取NaN作爲返回值,如果您使用iPod庫並詢問當前位置,則經常會發生這種情況。

+0

這正是我的問題,而不是setValue之一。非常感謝。 – user1122025 2012-09-11 19:23:56

2

我有同樣的問題,這是由重複資源造成的。如果它在xCode中重命名recources,請在Build Phases中檢查它。

1

NaN也是我的問題,但它比我預期的要糟......甚至在iOS5上將UISlider設置爲NAN一次,似乎永遠打破了該控件的實例令人驚訝,並花了一點時間來追蹤。