Метод touchesMoved:withEvent
Следует, однако, иметь в виду, что экземпляры объектов хранятся в nib-файлах в виде архивированных объектов. Именно таким механизмом мы пользовались для архивирования и загрузки объектов на диск. Таким образом, при загрузке экземпляра объекта из nib-файла ни метод init, ни метод initWithFrame: не вызывается. Вместо этого используется метод initWithCoderпоэтому именно в этом месте и нужно ввести код инициализации. В данном случае мы задаем красный цвет в качестве начального значения, инициализируем переменную useRandomColor начальным значением N0 и загружаем файл изображения, которое требуется нарисовать.
Остальные методы, touchesBegan:withEvent:, touchesMoved:withEvent: и touches-Ended:withEvent, наследуются из класса UlView, но на самом деле они объявляются в его родительском классе UIResponder. Их можно переопределить, чтобы выяснить, где именно пользователь касается экрана. Эти методы действуют следующим образом.
Метод touchesBegan:withEvent: вызывается, когда пользователь первый раз касается пальцем экрана. В этом методе изменяется цвет, если пользователь выбрал произвольный цвет, для чего используется новый метод randomColor, введенный ранее в класс UlColor. После этого сохраняется текущее местоположение, чтобы знать, где именно пользователь коснулся экрана первый раз. Для указания на необходимость перерисовки представления метод setNeedsDisplay вызывается по ссылке self.
Метод touchesMoved:withEvent: вызывается в течение всего времени, пока пользователь проводит пальцем по экрану. В этом методе лишь сохраняется новое местоположение в переменной lastTouch и указывается на необходимость перерисовки экрана.
Метод touchesEnded:withEvent: вызывается, когда пользователь отнимает палец от экрана. Как и в методе touchesMoved:withEvent:, в данном методе лишь сохраняется конечное местоположение в переменной lastTouch и указывается на необходимость перерисовки представления.
Если остальная часть кода вам не совсем понятна, не переживайте. Особенности обработки событий, связанных с касанием экрана, и применения методов touchesBegan: wi thEvent:, touchesMovediwithEvent: и touchesEndedtwithEvent..
Мы еще вернемся к данному классу, когда заготовка рассматриваемого здесь приложения будет готова к применению. Все основные действия в данном приложении выполняются в методе drawRect:, который в настоящий момент закомментирован, поскольку код для него еще не написан. Прежде чем вводить код рисования, следует завершить создание приложения.
- Дата: 12-01-2015, 20:30