2012-02-16 12 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で構築しています。誰もそのようなことに遭遇したことはありますか? FOUND

答えて

8

SOLUTION:私はこの問題は、次のミスによって引き起こされたと考えている。

私はslider.valueプロパティを使用して、スライダーの値を設定する代わりに、[スライダーのsetValue:アニメーション:]たタイマーを持っていました方法。私は値が設定されていることを正気ではなかった。

問題に対処することで問題は解決しました。

+0

下記のDreamTimeStudioZに記載されているように、主な問題はサニティチェックで、それほどsetValueではありません。あなたのソリューションを投稿していただきありがとうございます:) – user1122025

5

私は「回答」を2番目としたいと思います。値をチェックする健全性についてのビットを指摘してください。 slider.valueまたは[slider setValue]を使用してNaNに設定すると、iOS5の背景が消えることを意味します。

NB:戻り値としてNaNを取得することは、iPodライブラリを使用して現在の位置を求める場合に頻繁に発生する可能性があります。

+0

これはまさに私の問題でした。どうもありがとう。 – user1122025

2

私は同じ問題を抱えていました。これは重複リソースが原因でした。 xCodeの名前をrecourcesにする場合は、Build Phasesでそれを確認してください。

1

NaNも私の問題でしたが、予想以上に悪いです... iOS5でNISにUISliderを設定しても、コントロールのインスタンスが永久に破損しているようですが、驚くべきことでした。 。

関連する問題