UIBezierPath и рисование

Для рисования в iOS можно использовать CoreGraphics — это основанная на функциях C концепция. В данной концепции мы получаем контекст для рисования и в нем и рисуем.

//
// proSwift.ru
//

let context = UIGraphicGetCurrentContext()​

Все последующие манипуляции мы производим с этим контекстом.

Однако есть более простой и приятный способ:

Это объектно-ориентированный класс UIBezierPath​. Он построен на концепции CoreGraphics, экземпляр класса UIBezierPath сочетает в себе все что нужно для рисования. Например он автоматически создает вышеупомянутый  context.

Итак, ключевые моменты для работы с UIBezierPath:

//
// proSwift.ru
//

let path = UIBezierPath()

// рисуем треугольник (представим что карандашом)
path.moveToPoint(CGPoint(70, 40)) // поднесли карандаш к данной точке
path.addLineToPoint(CGPoint(130, 140)) // провели линию от точки выше к (130, 140)
path.addLineToPoint(CGPoint(5, 140)) // провели еще лини от точки выше к (5, 140)

path.closePath() // закрыли путь, т.е. провели линию от последней точки (5, 140) к первой точке (70, 40)

UIColor.blueColor().setFill()    // задали цвет заливки 
UIColor.blackColor().setStroke() // задали цвет линии пути
path.linewidth = 3.0             // ширина линии пути
path.fill()                      // залили треугольник  
path.stroke()                    // отрисовали путь 


let roundRect = UIBezierPath(roundedRect: aCGRect, cornerRadius: aCGFloat)
let oval = UIBezierPath(ovalInRect: aCGRect)
func containsPoint(CGPoint) -> Bool // возвращает содержит ли путь данную точку. Путь должен быть закрыт.

 

Метки:

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

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

*

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