Pirates: Sea Battle 2 - Йо хо-хо и бутылка рома… Zenonia - лучшая среди RPG
Май 26

В представлении выбора пользователь указывает в списке интересующий его элемент. В этом уроке мы узнаем, как быстро задавать его данного представления и настраивать реакцию на события. Вот как будет выглядеть наше приложение:

finalapp2

Создаем проект.

Выбрав опцию “Windows-Based Application“, создайте новый проект. Свой я назвал “PickerView“. Следующим шагом добавьте еще одно представление “PickerView” и создайте для него контроллер “PickerViewController“. Включите в представление “UIPickerView” и настройте соответствующие связи. “PickerViewController” реализует два протокола, а заголовочный файл для него выглядит так:

1
2
3
4
5
6
7
8
9
10
//RootViewController.h
#import <UIKit/UIKit.h>

@interface PickerViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> {

IBOutlet UIPickerView *pickerView;
NSMutableArray *arrayColors;
}

@end

Связи представления выбора представлены ниже:

connections2

К подпредставлению окна “UIPickerView” добавляется следующим образом:

1
2
3
4
5
6
7
8
9
10
//RootViewController.m
- (void)applicationDidFinishLaunching:(UIApplication *)application {

pvController = [[PickerViewController alloc] initWithNibName:@"PickerView" bundle:[NSBundle mainBundle]];

[window addSubview:pvController.view];

// Заменяем точку настройки после запуска представления
[window makeKeyAndVisible];
}

Создание источника данных.

Предлагаю создать источник данных со всеми цветами радуги. Множество декларируется в заголовочном файле и освобождается в методе “dealloc“. Данные заносятся в методе “viewDidLoad“. Вот как выглядит соответствующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
//PickerViewController.m
- (void)viewDidLoad {
[super viewDidLoad];

arrayColors = [[NSMutableArray alloc] init];
[arrayColors addObject:@"Red"];
[arrayColors addObject:@"Orange"];
[arrayColors addObject:@"Yellow"];
[arrayColors addObject:@"Green"];
[arrayColors addObject:@"Blue"];
[arrayColors addObject:@"Indigo"];
[arrayColors addObject:@"Violet"];
}

Представление выбора можно разделить на отдельные компоненты. В методе “numberOfComponentsInPickerView” укажем, какое их количество будет выводиться на экран:

1
2
3
4
5
//PickerViewController.m
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {

return 1;
}

Теперь, когда представление знает, на какое число компонентов рассчитывать, укажем количество отображаемых на экране строк в “pickerView:numberOfRowsInComponent“. Вот как выглядит исходный код:

1
2
3
4
5
//PickerViewController.m
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {

return [arrayColors count];
}

Метод “pickerView:titleForRow:forComponent” вызывается n-ное количество раз, где n—число, возвращаемое в “pickerView:titleForRow:forComponent“. Исходный код приведен ниже:

1
2
3
4
5
//PickerViewController.m
- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

return [arrayColors objectAtIndex:row];
}

В представленном фрагменте мы возвращаем для индекса объект с параметром ряда. Параметром компонента в данном случае можно пренебречь, поскольку отображаться он будет один. Если компонентов несколько, возвращаем строку, представленную в конкретном компоненте. Запустив приложение, увидим значения в интерфейсе выбора.

Обработка событий.

При выборе одного из элементов данного представления вызывается метод “pickerView:didSelectRow:inComponent” В нашем случае я просто регистрирую указанный цвет и номер строки. Код при этом выглядит следующим образом:

1
2
3
4
5
//PickerViewController.m
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

NSLog(@"Selected Color: %@. Index of selected color: %i", [arrayColors objectAtIndex:row], row);
}

Заключение.

Представление выбора — оптимальный способ отображения списка элементов для выбора одного из них. В этом уроке мы убедились, что настройка данного представления и реакция на события не представляет собой ничего сложного. Удачи!

Исходный код скачать можно [здесь]

Текст оригинальной статьи на английском языке [здесь]

Уважаемые читатели, данный материал был переведен и подготовлен к публикации проектом LookApp.ru, при публикации на другом сайте ссылка на LookApp.ru обязательна.

1 звезда2 звезд3 звезд4 звезд5 звезд (2 голосов, средний: 3.50 из 5)
Загрузка ... Загрузка ...


3 Responses to “Уроки iPhone SDK: “UIPickerView”: создаем простое представление выбора (picker view)”

  1. 1. Gargo Says:

    Замечание одно, но Большое.
    Зачем надо было называть еще и проект PickerView и еще делать контроллер PickerViewController?
    Путаница страшная. С первого раза у меня не получилось, хотя вроде бы делал все по инструкциям

  2. 2. SvenSD Says:

    Здраствуйте
    Вы можете создать урок по Xcode как создать простенкую игру для iphone.
    Поэтапно ну что требуется как это ставить ну и т.д
    Буду очень благодарен !

  3. 3. win2l Says:

    Есть тут создание простенькой игры - iTennis. Ищите в поиске.

Оставьте комментарий