Рисование линии


Технологии Iphone, рисование линии

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


CGContextMoveToPoint (context, ftrstTouch.x, IlrstTouch.y) ;

Потом рисуем линию от места первого касания и до места последнего касания экрана пользователем. Если палец пользователя по-прежнему касается экрана, в переменной lastTouch содержится текущее местоположение его пальца на экране. Если пользователь больше не касается экрана пальцем, то в переменной lastTouch содержится местоположение его пальца в тот момент, когда он отнял его от экрана.


Затем просто обводим контур. Приведенная ниже функция осуществляет обводку линии, только что нарисованной заданными ранее цветом и толщиной.


На этом последовательность операций рисования линии завершается и происходит выход из оператора switch.

На данном этапе вы должны быть в состоянии успешно скомпилировать и запустить на выполнение рассматриваемое здесь приложение. Варианты выбора Rect, Ellipse и Image в нем пока еще не действуют, но рисование линий любым выбранным цветом должно быть вам уже доступно.


Прямоугольник и эллипс нужно закрасить сплошным цветом, и поэтому мы вводим вызов метода, в котором цвет заливки задается с помощью переменной currentColor.


CGContextSetFillColorWithColor(context, currentColor.CGColor);

Затем объявляем переменную экземпляра CGRect. Переменная currentRect служит для хранения формы прямоугольника, описываемой проводкой пальцем пользователя по экрану. Напомним, что объект типа CGRect состоит из двух членов: size и origin. С помощью функции CGRectMake () мы создаем объект типа CGRect, указывая координаты х, у, ширину (width) и высоту (height), чтобы на основании этих данных нарисовать прямоугольник. Код рисования прямоугольника довольно прост. В качестве начала отсчета мы используем точку, хранящуюся в переменной firstTouch. Затем определяем размеры прямоугольника по разности двух значений х и двух значений у.


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


  • Дата: 14-01-2015, 14:00

Предыдущие статьи сайта:

Понравилась статья? Ставь лайки, рассказывай друзьям!



Отзывы о статье: Рисование линии

Технологии, секреты и фишки Apple: Iphone, iPad, iPod