iOS - iPhone: изображение трека UISlider исчезает случайно - PullRequest
4 голосов
/ 16 февраля 2012

У меня есть настроенный 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.Кто-нибудь когда-нибудь сталкивался с такой вещью?

Ответы [ 4 ]

8 голосов
/ 19 февраля 2012

РЕШЕНИЕ НАЙДЕНО: Я считаю, что эта проблема была вызвана следующей ошибкой:

У меня был таймер, который устанавливал значение ползунка, используя свойство slider.value вместо [slider setValue: animated:] метод.Я также не был в здравом уме, проверяя установленное значение.

Решение этих проблем решило проблему.

5 голосов
/ 15 марта 2012

Я второй «Ответ» и хочу esp. укажем немного о здравомыслии, проверяя значения. Я не думаю, что это имеет значение, если вы используете slider.value или [slider setValue], установка его на NaN означает, что фон в iOS5 исчезает.

NB. Получение NaN в качестве возвращаемого значения часто происходит, если вы используете библиотеку iPod и запрашиваете текущую позицию.

2 голосов
/ 04 сентября 2012

У меня была такая же проблема, это было вызвано дублированием ресурсов. Проверьте это в Build Phases, если это переименование ресурсов в xCode.

1 голос
/ 20 декабря 2012

С NaN я тоже столкнулся, но он хуже, чем я ожидал ... даже однажды установив UISlider на NAN, на iOS5, кажется, навсегда сломался тот экземпляр элемента управления, который был удивительным и занял немного времени, чтобы отследить.

...