Как получить минуты и секунды в UIPickerView, как на рисунке? - PullRequest
3 голосов
/ 02 сентября 2011

enter image description here

Как мы можем достичь такого типа выбранных значений, которые будут изменены с минутами и секундами в UIPickerView ???

Ответы [ 2 ]

4 голосов
/ 02 сентября 2011

Сначала вы используете метод источника данных pickerView:viewForRow:inComponent:reusingView: для возврата метки «00». Это на самом деле немного сложно, так как представление выбора изменяет кадр этого представления, чтобы заполнить строку. Это означает, что вы должны встроить свой правильно позиционированный вид в другой вид, а затем вернуть этот контейнерный вид.

Что касается меток, то это просто UILabel объекты, которые были правильно расположены и добавлены как подпредставления самого окна выбора.

И чтобы они обновлялись правильно, просто измените их заголовки в методе pickerView:didSelectRow:inComponent:.

Это именно то, что делает UIDatePicker.

0 голосов
/ 02 сентября 2011

Вы должны реализовать UIPickerViewDelegate Protocol и UIPickerViewDataSource Protocol.

В методе - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component просто вернуть необходимый заголовок.

Вы также можете добавить делегат на valueChanged событие UIPickerView. И каждый раз, когда ваше значение изменяется, вы можете перезагрузить все видимые строки и установить метки минут и секунд в правильных положениях.

Вы можете просто добавить подпредставление с 2 UILabel s над черной линией.

Вы также можете добавить подпредставление с черной градиентной линией с метками mins и secs.

Затем, используя метод: - (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component, вы можете установить соответствующую ширину ваших столбцов.

...