Главная » iPhone, Objective-C, Программирование для iOS и MacOS » Подготовка  представлений iTahDoodle

0

Чтобы приложение было готово к  работе, мы должны  подготовить объекты представлений: создать их, настроить и отобразить на экране. Логично, не правда ли? Пользователь не сможет нажать кнопку, которая не существует или не отображается на экране.

В iTahDoodle мы создадим представления на программном уровне в application: didFinishLaunchingWithOptions:. Также существуют визуальные средства создания представлений, которыми мы воспользуемся в следующей главе.

Я должен предупредить, что дальше код становится достаточно серьезным.

Подробный синтаксис создания и отображения представлений на экране – тема для отдельной книги, посвященной программированию приложений iOS. Попробуйте уловить суть происходящего. Мы создаем каждый объект, а затем настраиваем его, задавая значения некоторых свойств. Затем настроенные объекты включаются как субпредcтавления в объект окна, и наконец, окно размещается на экране.

#pragma mark -­‐  Application delegate callbacks

-­‐   (BOOL)application:(UIApplication  *)application didFinishLaunchingWithOptions:(NSDictionary      *)launchOptions

{

// попытка загрузки существующего списка задач

// из массива, хранящегося на диске.

NSArray *plist = [NSArray arrayWithContentsOfFile:docPath()]; if (plist) {

// если набор данных существует, он копируется в переменную экземпляра.

tasks = [plist mutableCopy];

} else {

// в противном случае просто создаем пустой исходный набор.

tasks = [[NSMutableArray alloc] init];

}

// создание и настройка экземпляра UIWindow.

// структура CGRect представляет прямоугольник с базовой точкой

// (х,у) и размерами (width,height)

CGRect windowFrame = [[UIScreen mainScreen] bounds];

UIWindow *theWindow = [[UIWindow alloc] initWithFrame:windowFrame]; [self setWindow:theWindow];

// определение граничных прямоугольников для трех элементов

// пользовательского интерфейса.

// CGRectMake() создает экземпляр CGRect по данным (х, у, width, height) CGRect tableFrame = CGRectMake(0, 80, 320, 380);

CGRect fieldFrame = CGRectMake(20, 40, 200, 31);

CGRect buttonFrame = CGRectMake(228, 40, 72, 31);

// создание и настройка табличного представления

taskTable = [[UITableView alloc] initWithFrame:tableFrame

style:UITableViewStylePlain];

[taskTable setSeparatorStyle:UITableViewCellSeparatorStyleNone];

// создание и настройка текстового поля для ввода новых задач taskField = [[UITextField alloc] initWithFrame:fieldFrame]; [taskField setBorderStyle:UITextBorderStyleRoundedRect]; [taskField setPlaceholder:@"Type a task, tap Insert"];

// создание и настройка кнопки Insert в виде прямоугольника

// с закругленными углами.

insertButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [insertButton setFrame:buttonFrame];

// работа кнопок основана на механизме обратного вызова типа

// "приемник/действие". Действие кнопки Insert настраивается

// на вызов метода -­‐аddТаsk: текущего объекта [insertButton addTarget:self

action:@selector(addTask:) forControlEvents:UIControlEventTouchUpInside];

// Определение надписи на кнопке

[insertButton setTitle:@"Insert"

forState:UIControlStateNormal];

// включение трех элементов пользовательского интерфейса в окно [[self window] addSubview:taskTable];

[[self window] addSubview:taskField]; [[self window] addSubview:insertButton];

// Завершение настройки окна и отображение его на экране [[self window] setBackgroundColor:[UIColor whiteColor]]; [[self window] makeKeyAndVisible];

return YES;

}

Источник: Аарон Хилегас, «Objective-C. Программирование для iOS и MacOS», 2012 г.

По теме:

  • Комментарии