Собственные (custom) UIView, drawRect()

Создание собственного (custom) UIView нам нужна если:

  • Нам надо нарисовать на экране что-что свое
  • Нам надо обработать события (жесты) специальным образом, т.е. отличным от стандартного способа (например которым обрабатывается  перетягивание для слайдера или нажатие для кнопки)

Итак, для рисования мы переопределяем метод

//
// proSwift.ru
//

override func drawRect(rect:CGRect)

В данном случае rect — это параметр, которым можно пренебречь в работе. Он существует ради оптимизации.

Также следует помнить, что нельзя вызывать метод drawRect() напрямую. Следует послать сообщение системе, чтобы она перерисовала UIView

//
// proSwift.ru
//

setNeedsDisplay ()

setNeedsDisplayInRect(regionThatNeedsToBeDrawn:CGRect)

Второй метод позволяет перерисовать только часть, которая задана regionThatNeedsToBeDrawn

Наличие drawRect ​стóит системе определенных ресурсов. Она думает, что она должна рисовать все, что находится в drawRect. Мы должны реализовать drawRect т​олько, если мы действительно собрались в нем рисовать. Не нужно реализовывать drawRect​, в котором не будет происходить рисование.

Метки: ,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.