Это может быть простой вопрос, но как добавить несколько компонентов в UIPickerView? Я использую NSMutableArray для заполнения одного компонента, но я не знаю, как заполнить остальные. Мне также нужно изменить значение метки при выборе строки. Заранее спасибо КиранКак добавить несколько компонентов в PickerView?
ответ
я понимаю, что вы новичок. Вот как реализовать методы Них справедливо указали:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
// return the number of components required
return 2;
}
Вы можете использовать другие NSMutableArray
«S для заполнения компонентов. Если предположить, что у вас есть 2 компонента, каждый из которых использует разные NSMutableArray
т.е. array1
и array2
:
// Return row count for each of the components
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
if (component == 0) {
return [array1 count];
}
else {
return [array2 count];
}
}
// Populate the rows of the Picker
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
// Component 0 should load the array1 values, Component 1 will have the array2 values
if (component == 0) {
return [array1 objectAtIndex:row];
}
else if (component == 1) {
return [array2 objectAtIndex:row];
}
return nil;
}
Используйте этот код, чтобы изменить текст label
, скажем selectedValue
при выборе значения в PickerView:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
selectedValue.text = [NSString stringWithFormat: @"%@, %@", [array1 objectAtIndex:[myPicker selectedRowInComponent:0]],[array2 objectAtIndex:[myPicker selectedRowInComponent:1]]];
}
... и вам хорошо идти :)
Возможно, вы также захотите увидеть http://joshhighland.com/blog/2009/09/17/uipickerview-spinning-multiple-components/ для получения ценных советов по программированию pickerView.
Вы должны установить источник данных и использовать
– numberOfComponentsInPickerView:
– pickerView:numberOfRowsInComponent:
установить его делегатом и использование:
– pickerView:didSelectRow:inComponent:
изменить метку, когда определенная строка в определенном компоненте . Очень вероятно, UITableViewDelegate и Datasource
, а также принимая взгляд на documentation помогает :)
Вместо component
Я нашел, используя более tag
.
Затем в коде:
// returns the # of rows in each component..
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
//NSLog(@"Component_1: %d",pickerView.tag);
if (pickerView.tag == 1)
return [self.arrOpponentTeams count];
else if (pickerView.tag == 2)
return [self.arrMyTeams count];
else
return [self.arrPlayers count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
//NSLog(@"Component_2: %d",pickerView.tag);
if(pickerView.tag == 1)
return [self.arrOpponentTeams objectAtIndex:row];
else if (pickerView.tag == 2)
return [self.arrMyTeams objectAtIndex:row];
else
return [self.arrPlayers objectAtIndex:row];
}
Я не знаю, если это немного поздно, но я решил это еще один способ массив немного рудиментарные Но она творит чудеса Вы даже можете поставить разные цвет для каждого массива
- (void) viewDidLoad {
horPickerArray = @[@"00",@"01",@"02",@"03",@"04",@"05".to..24];
minPickerArray = @[@"00",@"01",@"02",@"03",@"04",@"05".to..59];
secPickerArray = @[@"00",@"01",@"02",@"03",@"04",@"05".to..59];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 3;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (component == 0) {
return _HorPickerArray.count ;
}
else if (component == 1) {
return _MinPickerArray.count ;
}
else if (component == 2) {
return _SecPickerArray.count ;
}
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component == 0) {
return [_HorPickerArray objectAtIndex:row];
}
else if (component == 1) {
return [_MinPickerArray objectAtIndex:row];
}
else if (component == 2) {
return [_SecPickerArray objectAtIndex:row];
}
return nil;
}
И Печать в TextField
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
_OficialTime.text =[NSString stringWithFormat: @"%@:%@:%@", [_HorPickerArray objectAtIndex:[_TimerPiker selectedRowInComponent:0]],[_MinPickerArray objectAtIndex:[_TimerPiker selectedRowInComponent:1]], [_SecPickerArray objectAtIndex:[_TimerPiker selectedRowInComponent:2]]];
}
- 1. Разделитель компонентов Swift - pickerView
- 2. UIPickerView несколько компонентов в swift
- 3. Как добавить несколько компонентов в JFrame?
- 4. Как добавить несколько компонентов в JFrame
- 5. Как добавить pickerView в tableViewCell в swift?
- 6. Невозможно добавить несколько строк компонентов в переменную
- 7. Можно добавить несколько компонентов ClientSocket в форму?
- 8. Как реализовано несколько компонентов?
- 9. Несколько Pickerview с разными значениями
- 10. реагировать на несколько компонентов добавить элемент
- 11. Несколько компонентов в angular2
- 12. ObjC добавить строки текстового файла в PickerView
- 13. Несколько компонентов в реакции
- 14. Можно ли добавить несколько компонентов в JPanel в одном выражении?
- 15. Как инициализировать несколько компонентов paintComponents?
- 16. Несколько PickerView на контроллере нескольких точек зрения
- 17. Flex 4.5 добавить несколько компонентов в контейнер во время выполнения
- 18. Как показать PickerView выше anotherview
- 19. Как найти объект в PickerView
- 20. Как показать несколько компонентов в реакциях
- 21. Как экспортировать несколько компонентов в Angular 2
- 22. Как интегрировать несколько компонентов в API
- 23. Несколько компонентов из объекта
- 24. iOS: Как использовать PickerView
- 25. Несколько вложенных компонентов
- 26. Как установить pickerview horizantaly
- 27. Как заполнить pickerView правильно
- 28. ViewChildren, передающие несколько компонентов
- 29. Несколько активных компонентов
- 30. Несколько пользовательских компонентов NativeScript