Могу ли я добавить прогресс в UISlider? - PullRequest
1 голос
/ 16 июля 2010

На этой картинке показано, что я хочу, я просто создаю собственный контроллер для воспроизведения видео.

alt text http://www.imagechicken.com/uploads/1279252703012036800.png

Я знаю, как сделать пользовательский uislider, как показано ниже

    playSlider.backgroundColor=[UIColor clearColor];
    [playSlider setThumbImage:[UIImage imageNamed:@"sliderButton.png"] forState:UIControlStateNormal];
    [playSlider setMaximumTrackImage:[UIImage imageNamed:@"sliderGray.png"] forState:UIControlStateNormal];
    [playSlider setMinimumTrackImage:[UIImage imageNamed:@"sliderBlue.png"] forState:UIControlStateNormal];

но это мне не поможет. Есть идеи?Спасибо за любые советы!

Ответы [ 3 ]

2 голосов
/ 16 июля 2010

Я думаю, что вы могли бы избежать неприятностей с UISlider, только если большой палец никогда не мог покинуть синюю (загруженную) область. Затем вы можете нарисовать неактивную (незагруженную) дорожку справа от фактических границ ползунка и просто обновить границы ползунка по мере загрузки видео, что увеличит синюю область. Но вам все равно придется сделать правильную математику для относительного прогресса большого пальца.

Если вам нужен большой палец, чтобы провести в незагруженную область, или вы хотите избежать головной боли при пересчете, вам просто нужно создать свой собственный элемент управления. К сожалению, UISlider сам по себе не очень настраиваемый элемент управления.

0 голосов
/ 16 июля 2010

переопределение drawRect: не очень хорошая идея. Вы должны будете сделать пользовательский объект, содержащий что-то вроде: кнопка UIB для воспроизведения / паузы, UISlider для слайдера, кнопки UIB для включения / выключения звука, и UIView для объема (вам придется реализовать самостоятельно)

На самом деле это не сложно, это просто контейнерный объект.

0 голосов
/ 16 июля 2010

Вы должны иметь возможность подкласса drawRect на UISlider, чтобы настроить это, но я могу ошибаться.

...