Урок 6. Как программировать на iOS - работаем с кнопкой UIButton
Всем привет!
Продолжаем уроки :)
Сегодня я расскажу про использование кнопок в iOS.
Кнопки - один из самых часто используемых элементов в любой программе. Речь не только об iOS - в любой операционной системе, да и на сайтах в интернете, есть кнопки.
Давайте разберемся с теорией.
Как я показывал в прошлом уроке на примере текстового поля UITextField, операционная система iOS сама сообщает нам о том, что с элементом на экране произошло какое-то событие.
В случае с UITextField, система обрашалась к объекту-делегату и вызывала метод, соответствующий произошедшему событию - например, нажатию "Return" на экранной клавиатуре.
С кнопками ситуация похожая, но несколько другая.
У кнопок нет делегатов, вместо этого используется парадигма "Target - Action". В будущих уроках я обязательно расскажу про нее очень подробно, но на данный момент достаточно понимать, что на каждое событие, которое может произойти с кнопкой, мы можем привязать конкретный метод в нашем коде.
Соответственно, пользователь жмет кнопку - вызывается метод, который мы указали - и исполняется наш код!
Звучит просто :) Давайте воспользуемся нашим прошлым проектом, чтобы узнать о кнопках.
Обещаю - в следующий раз мы разберем первый настоящий прикольный проект :)
Начнем с того, что разместим на экране кнопку - для этого как всегда пройдем во ViewController_iPhone.xib.
Вот список компонентов:
Нас интересует Round Rect Button - это стандартная кнопка в iPhone.
Расположите ее путем перетаскивания и растяжение, например, так:
Отлично!
Нажмите на кнопку и справа вы увидите список ее свойств:
Можете "поиграться со свойствами", я заменил заголовок (title) на "Очистить" и больше ничего не менял.
Но ради интереса, можете поменять шрифт, цвета и т.д.
Теперь давайте отвлечемся на код.
Как я говорил, система будет извещать нас о нажатиях на кнопку, но нам нужен код, который эти нажатия будет обрабатывать.
В файле ViewController.h разместите выделенный жирным код:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UITextFieldDelegate>
{
IBOutlet UILabel *myText;
IBOutlet UITextField *inputText;
}
-(IBAction)clearText:(id)sender;
@end
Этот код сообщает системе, что у нас есть метод clearText, который принимает в качестве "агрумента" объект sender.
На следующем уроке мы подробно поговорим о языке Objective C - я дам много теории в последующих нескольких уроках, чтобы вы понимали, что пишите :)
На данный момент вам достаточно понимать, что есть метод, который называется "clearText:" (да-да, именно с двуеточием в конце), он принимает объект sender (в нашем случае, это будет кнопка).
IBAction означает, что мы будем привязывать этот метод к какому-то элементу на экране через визуальный интерфейс.
В файл ViewController.m добавьте реализацию этого метода:
-(IBAction)clearText:(id)sender
{
myText.text = @"";
inputText.text = @"";
}
В первой строчке мы опустошаем свойство "text" (текст :) ) у надписи, во второй - у текстового поля. В результате, как нетрудно догадаться, текст обнуляется.
Давайте расскажем нашей кнопке об этом методе.
Нажмите правой кнопкой мыши на кнопку и выберите "Touch Up Inside" (событие нажатия кнопки)
Нажав на плюсик, протащите его до File's Owner
Выберите появившийся метод clearText:
Если вы все правильно сделали, то при нажатии правой кнопкой мыши на кнопку вы увидите следующее:
Вот и все! Давайте запустим!
Вот наш экран с надписями:
Нажимаем кнопку - и он очищается!
На этом урок закончен.
В следующем уроке будет я изложу основы языка Objective C, чтобы вы понимали, как на нем писать простые вещи - в дальнейших уроках мы будем совершенствовать его знание.
И в одном из следующих уроков мы напишем, используя наши знания, проект "Калькулятор".
На этом все. Если есть вопросы - прошу в комменты.
Удачи!
Когда будет следующая статья? у меня информационный голод!
ОтветитьУдалить