Я пытаюсь использовать Представление UIPicker с поведением, так или иначе отличающимся из того, что обычно замечается в примерах кода iPhone.
То, что я хочу сделать, должно позволить пользователям просматривать содержание средства выбора путем прокрутки, но не выбирать строку средства выбора автоматически (использующий "didSelectRow" метод от делегата средства выбора). Вместо этого я хочу позволить пользователю касаться центральной строки средства выбора, которое выделяется и становится выбором.
Там какой-либо путь состоит в том, чтобы достигнуть этого?
Заранее спасибо.
создайте новый UIControl
[yourcontrol setBackGroundColor: [UIColor clearColor]];
создать метод
- (IBAction) pickerControlTapped { [yourpicker selectRow: rand()% yourpickersize inComponent: 0 animated: YES]; }
.3. установите соединение между 1 и 2
[yourcontrol addTarget: self action: @selector(pickerControlTapped) forControlEvents: UIControlEventTouchUpInsied];
Есть только 2 делегата для UIPickerView.
Таким образом, мы можем использовать только 7 методов для управления UIPickerView через делегат.
- pickerView:rowHeightForComponent:
- pickerView:widthForComponent:
- pickerView:titleForRow:forComponent:
- pickerView:viewForRow:forComponent:reusingView:
- pickerView:didSelectRow:inComponent:
- numberOfComponentsInPickerView:
- pickerView:numberOfRowsInComponent:
вот и все.
В случае UITableViewDelegate, есть больше методов для UITableView для управления выборами.
например,
tableView:willSelectRowAtIndexPath:
- tableView:didSelectRowAtIndexPath:
- tableView:willDeselectRowAtIndexPath:
- tableView:didDeselectRowAtIndexPath:
Однако...
В случае UIPickerViewDelegate есть только 1 метод для реагирования на выбор строки.
- pickerView:didSelectRow:inComponent: