Те, кто уже попробовал создать приложение Hello World, могут попробовать свои силы в чем-то более функциональном.
Откройте Xcode, создайте новый проект “Window-Based Application” с именем “Calculator“, создайте контроллер представления “View Controller” с именем “Calc“, а также представление “Calculator“.
Теперь нам понадобится один объект, пара переменных и методы в файле “Calc.h“:
1 2 3 4 5 6 7 8 9 10 11 12
| #import <UIKit/UIKit.h>
@interface Calc : UIViewController {
float result;
IBOutlet UILabel *calculatorScreen;
int currentOperation;
float currentNumber;
}
-(IBAction)buttonDigitPressed:(id)sender;
-(IBAction)buttonOperationPressed:(id)sender;
-(IBAction)cancelInput;
-(IBAction)cancelOperation;
@end |
- “result” для типа “float” — число в памяти, результат последней операции
- “calculatorScreen” для типа “UILabel” показывает результат операции или вводимое пользователем число
- “currentOperation” для типа “int” является идентификатором операции (1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление, 0 — равенство)
- “currentNumber” для типа “float” — вводимое пользователем число для каждой следующей операции (выводится на “calculatorScreen“)
- метод “buttonDigitPressed:(id)sender” вызывается при нажатии пользователем одной из кнопок 0-9 (для всех десяти метод будет один). Конечно, можно было предусмотреть и десять методов типа “-(IBAction)button6Pressed“, но я научу определять запрашивающую метод кнопку с помощью “(id)sender“
- “buttonOperationPressed:(id)sender” — точно такой же единственный метод для пяти операций: сложения (addition), вычитания (subtraction), умножения (multiplication), деления и равенства (equals).
- “cancelInput” и “cancelOperation” при нажатии пользователем “C” или “AC” Продолжить чтение »
В этом уроке мы рассмотрим создание веб-обозревателя (по-быстрому, с жестко запрограмированным URL или HTML наполнением). Позже мы еще вернемся к этой теме и поговорим о добавлении на верхнюю панель инструментов функций поиска, создания ссылок и пр.
1. Настройка проекта
Я не буду вдаваться в детали по настройке XCode и подобным моментам. При необходимости вы всегда можете вернуться к [предыдущим урокам]. Из верхнего меню выберите команду “File -> New Project“, в окне iPhone OS — выбираем “Window-Based Application“. Продолжить чтение »
Почему бы не представить в магазине приложений свой собственный пазл — как это сделали мы! В этом уроке я поэтапно расскажу о создании такого приложения. Итоговый результат будет выглядеть примерно так, как на фото. Чашку с кофе — и можно приступать.

Как настоящие программисты, для начала остановимся на том, что такое slider puzzle и как его реализовать. Наверное, все помнят детскую игру “пятнашки”, где фишки с цифрами нужно было выстроить по порядку. В нашем случае это будут разрозненные фрагменты изображения, которые собираются в единое целое (их на один меньше, чтобы кусочки можно было перемещать). Теперь подумаем, что понадобится, чтобы воплотить такой проект в жизнь. Продолжить чтение »
В этом уроке мы узнаем, как добавить в приложение с контроллером навигации “UINavigationController” элемент интерфейса “UIToolbar“. Передо мной стояла задача добавления этой панели в интерфейс одной кнопкой. Щелчок на кнопке должен был загружать контроллер представления, тот же самый что и при выборе “UITableViewCell“. Ниже описано найденное мною решение.
Вот как будет выглядеть готовое приложение:

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

Она же в нажатом (активированном) состоянии:

Закругленные углы — это, конечно, неплохо. Активированная версия тоже ничего. А вот белый фон меня совершенно не устраивает. Откройте приложение “Clock” и переключитесь на секундомер (Stopwatch). По-моему, кнопки “Start/Stop” и “Reset/Lap” выглядят приличнее. Продолжить чтение »
В комментариях к одному из предыдущих уроков по программированию на iPhone задавался вопрос о способе создания кнопки и ожидании события “UIControlEventTouchUpInside“. Я решил не добавлять ответ в комментарии, а посвятить ему отдельную статью. Мы не будем прибегать к помощи редактора Interface Builder и создадим нашу кнопку исключительно программными средствами.
Исходный код для начала работы возьмем [этот (Hello world!)]. Начнем с нового window-based приложения с одним подклассом “UIViewController” . Внедренная функция “loadView” даст нам возможность полностью управлять заполнением контроллера представлениями. Чтобы приступить к работе над кнопкой, нам потребуется следующий код:
1 2 3 4 5 6 7 8 9 10
| // Внедряем loadView для создания иерархии представлений программными средствами,
// без nib-файла.
- (void)loadView {
//размещаем представление
self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
//настраиваем для него цвет фона
self.view.backgroundColor = [UIColor whiteColor];
} |
Продолжить чтение »
Одна из привлекательных особенностей интерфейса Cocoa Touch — упрощенная работа с анимацией. В этом уроке я покажу пару простых примеров создания анимации для iPhone. Наша анимация будет выполнять две задачи: перемещать объект на экране и менять его размеры в зависимости от точки касания его пользователем.
Тем, кому еще не приходилось заниматься программированием на iPhone, полезно будет ознакомится с азами [здесь]. В качестве примера приведу также урок из серии Stanford iPhone Development (в оригинале), где рассматривались основы анимации движения.
Ниже выложено короткое видео приложения, которое нам предстоит создать. Как уже упоминалось выше, с ним можно делать две вещи. Один щелчок будет перемещать внутреннее представление к точке касания. При двойном касании представление будет перемещаться с изменением размеров. Ориентируясь на точки касания, приложение создавать прямоугольник с фреймом для представления. Продолжить чтение »
Сейчас я завершаю разработку игры, поэтому в последнее время активно работаю с программой Instruments. Как выяснилось, она особенно актуальна для обнаружения в игре утечек памяти. Я подумал, что раз эта функция так полезна для меня, возможно, и другим пользователям будет интересно узнать, как с ее помощью выявлять утечки памяти.
Что такое утечка памяти и почему она так важна?
Утечка памяти происходит, когда программа утрачивает доступ к фрагменту информации, для которого выделялась динамическая память. В результате “утерянная” память больше не высвобождается. Такое обычно происходит, когда код включает функции “new“, “malloc” или “alloc” в отсутствие соответствующих им “delete“, “free” либо “release“.
При задействующихся функциях “new“, “malloc” и “alloc” операционная система выделяет программе фрагмент памяти, предлагая определенную область, находящуюся по конкретному адресу. При этом система рассчитывает, что на данный фрагмент памяти будет иметься ссылка (обычно в форме адресного указателя). По окончании работы с ним ОС ждет сообщения о последующих действиях (посредством обращения к функциям “delete“, “free” либо “release“).
Если в программе не остаётся указателей на адреса этих фрагментов, налицо утечка. Программа не знает расположения объектов в динамической памяти, соответственно, у нее нет возможности их удалить. Продолжить чтение »
Закончим эту серию статей, добавив к игре звуковое сопровождение. Поскольку это уроки для новичков, я не буду вдаваться в связанные с OpenAL и Audio Queues сложности. Сегодня мы займемся воспроизведением коротких звуков (менее 30 с). При отсутствии потребности в фоновой музыке это самый простой способ работы с аудио. (Конечно, можно было бы поставить 30-секундный фрагмент на циклическое воспроизведение, но до такого позора мы не опустимся.)
Проблема при таком подходе заключается в том, что одновременно может проигрываться не более одного аудиофайла. Что ж, приступим… Нам понадобится код прошлого урока который мы можно скачать по [этой ссылке] (воспользуйтесь своим или загрузите новый вариант). Сегодня мы будем работать с двумя звуками: один — для удара по мячу, второй — для набранного очка. Продолжить чтение »
Программирование игр на iPhone. Часть 3 — экранная заставка.
На этот раз я познакомлю с парочкой моментов, которые придадут игре более завершенный вид. Для начала добавим к игре заставку с пятном. (Вновь прошу прощения за отсутствие художественных талантов. С Photoshop’ом так и не подружился.)
Создаем экранную заставку.
Добавим к игре заставку, которая постепенно будет сменяться основным экраном игры. Для начала загрузим изображение и добавим в относящуюся к проекту папку “Resources“. Убедитесь, что опция копирования изображения в папку проекта помечена флажком. Продолжить чтение »
|
Последние комментарии
пока я не получил лицензию разработчика, но уже очень хочу...
vodos, да...
Злые вы,...
iPhone Application writes data to a text file,...
ошибка...