Чтение онлайн

на главную - закладки

Жанры

Программирование на Objective-C 2.0
Шрифт:

Для атрибута Layout (Компоновка) выберите Right-justified (Выравнивание справа) среди вариантов выравнивания (Alignment). И, наконец, измените цвет фона (background) для метки на синий так же, как изменили цвет фона окна на черный. Ваше окно Inspector должно быть похоже на рис. 2I.I3.

Теперь изменим размер метки. Вернемся к окну Window и изменим размер метки, растянув ее углы и стороны. Измените размер и местоположение метки, чтобы она выглядела, как на рисунке 21.14.

Теперь добавим в этот интерфейс кнопку. Из окна Library перетяните объект Round Rect Button в ваше окно интерфейса, поместив его в нижний левый угол

окна (рис. 21.15). Метку на этой кнопке можно изменить одним из двух способов: дважды щелкнуть на кнопке и затем ввести нужный текст или ввести текст в поле Title (Заголовок) в окне Inspector. При любом способе сделайте так, чтобы ваше окно было похоже на показанное на рисунке 21.15.

Рис. 21.13. Изменение атрибутов метки

Теперь у нас есть метка, которую нужно связать с переменной экземпляра display, чтобы при задании этой переменной в программе текст метки был изменен.

У нас также есть кнопка с меткой 1, для которой нужно задать вызов метода clickl: при каждом нажатии этой кнопки. Этот метод задаст значение 1 для текстового поля на дисплее. А поскольку эта переменная будет связана с данной меткой, метка будет изменяться. Приведем ниже последовательность, которую нужно задать.

Пользователь нажимает кнопку с меткой 1.

По этому событию вызывается метод dickl:.

Метод clickl: изменяет текст переменной экземпляра display на строку 1.

Поскольку объект DILabel display связан с меткой в окне iPhone, текст этой метки изменяется на соответствующее текстовое значение, равное 1.

Рис. 21.14. Изменение размера и местоположения метки

Рис. 21.15. Добавление кнопки в интерфейс

Для выполнения этой последовательности нам требуются только две привязки.

Сначала свяжем кнопку с методом IBAction clickl:. Для этого удерживайте нажатой клавишу Control во время щелчка на этой кнопке и затем протяните синюю линию, которая появится на экране, к кубику делегата приложения (AppDelegate) в окне MainWindow.xib, как показано рис. 21.16.

Когда вы отпустите кнопку мыши над кубиком делегата приложения, появится раскрывающееся меню, где можно выбрать метод IBAction для привязки к кнопке. В данном случае имеется только один такой метод (с именем clickl:), и он появится в этом раскрывающемся меню. Выберите этот метод, чтобы создать привязку (рис. 21.17).

Теперь выполним привязку переменной display к метке. Нажатие кнопки вызывает выполнение метода в приложении (то есть управление передается от интерфейса к делегата приложения), задание значения переменной экземпляра в приложении вызывает изменение текста метки в окне iPhone. (Управление передается от делегата приложения к интерфейсу.) Поэтому, удерживая нажатой клавишу Control, щелкните на значке делегата приложения и протяните к метке синюю линию, которая появится в окне Window (рис. 21.18).

Рис. 21.16.

Добавление действия для кнопки

Рис. 21.17. Привязка события к методу

Рис. 21.18. Привязка outlet-переменной

Отпустив кнопку мыши, мы получим список outlet-переменных соответствующего класса как элемент управления (UlLabel), среди которых можно сделать выбор. В нашей программе такая переменная одна — с именем display. Выберите ее и выполните привязку (рис. 21.19).

Выберите File->Save в линейке меню Interface Builder и затем Build and Go в Xcode. (Это можно также инициировать из Interface Builder.)

Если все проходит нормально, программа будет успешно собрана и начнет выполняться. При этом она будет сначала загружена в имитатор iPhone, который появится на экране вашего компьютера (см. рис. 21.1). Чтобы имитировать нажатие кнопки в имитаторе, нужно просто щелкнуть на ней. Последовательность шагов и привязок, которая описана выше, будет реализована в виде отображения текстовой строки 1 в метке вверху дисплея, как показано на рис. 21.2.

Рис. 21.19. Завершение привязки 21.3. Калькулятор дробей для iPhone

Следующий пример несколько сложнее, но к нему применяются все концеп-ции предыдущего примера. Мы не будем описывать шаги по созданию этого примера полностью, а только приведем сводку этих шагов и дадим обзор методологии разработки. И, конечно, покажем весь код.

Сначала рассмотрим, как работает приложение. Приложение на имитаторе непосредственно после запуска показано на рис. 21,20.

Этот калькулятор позволяет вводить дроби. Сначала вводится числитель (numerator), затем нужно нажать клавишу с меткой Over и ввести знаменатель (denominator). Таким образом, чтобы ввести дробь 2/5, нужно нажать 2, затем Over и 5. В отличие от других калькуляторов, это приложение показывает простую дробь на дисплее, то есть 2/5 отображается как 2/5.

После ввода дроби нужно выбрать операцию: сложение, вычитание, умножение или деление — и нажать клавишу +, -, х или ?.

После ввода второй дроби нужно завершить операцию, нажав клавишу =, как в стандартном калькуляторе.

Примечание. Этот калькулятор может выполнять только одну операцию над дробями. В упражнении в конце главы от вас потребуется снять это ограниче-ние.

Рис. 21.20. Калькулятор дробей после запуска

По мере нажатия клавиш дисплей непрерывно обновляется. На рис. 21.21 показан дисплей после ввода дроби 4/6 и нажатия клавиши умножения.

На рис. 21.22 показан результат умножения дробей 4/6 и 2/8. Результат 1/6 показывает, что выполняется сокращение результирующей дроби. Запуск нового проекта Fraction_Calculator

Поделиться:
Популярные книги

Адепт

Листратов Валерий
4. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Адепт

За Горизонтом

Вайс Александр
8. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
За Горизонтом

Звездная Кровь. Экзарх III

Рокотов Алексей
3. Экзарх
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Экзарх III

Неудержимый. Книга XXVI

Боярский Андрей
26. Неудержимый
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Неудержимый. Книга XXVI

Я все еще не царь. Книга XXVI

Дрейк Сириус
26. Дорогой барон!
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Я все еще не царь. Книга XXVI

Лекарь Империи 9

Карелин Сергей Витальевич
9. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
5.00
рейтинг книги
Лекарь Империи 9

Адвокат Империи 14

Карелин Сергей Витальевич
14. Адвокат империи
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Адвокат Империи 14

Морской волк. 1-я Трилогия

Савин Владислав
1. Морской волк
Фантастика:
альтернативная история
8.71
рейтинг книги
Морской волк. 1-я Трилогия

Маяк надежды

Кас Маркус
5. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Маяк надежды

Черный Маг Императора 12

Герда Александр
12. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 12

Афганский рубеж 3

Дорин Михаил
3. Рубеж
Фантастика:
попаданцы
альтернативная история
6.00
рейтинг книги
Афганский рубеж 3

Кодекс Охотника. Книга VI

Винокуров Юрий
6. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VI

Второгодка. Книга 5. Презренный металл

Ромов Дмитрий
5. Второгодка
Фантастика:
городское фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Второгодка. Книга 5. Презренный металл

Последний Герой. Том 3

Дамиров Рафаэль
3. Последний герой
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Последний Герой. Том 3