вторник, 29 января 2013 г.

Урок 6. Как программировать на iOS - работаем с кнопкой UIButton

Урок 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, чтобы вы понимали, как на нем писать простые вещи - в дальнейших уроках мы будем совершенствовать его знание.
И в одном из следующих уроков мы напишем, используя наши знания, проект "Калькулятор".
На этом все. Если есть вопросы - прошу в комменты.
Удачи!

1 комментарий:

  1. Когда будет следующая статья? у меня информационный голод!

    ОтветитьУдалить