UIBezierPath сдвинулся наполовину в сторону

Я пытаюсь нарисовать UIBezierPath в представлении. Странно то, что он начинается со смещения 50% от представления.

введите здесь описание изображения

Серая часть — это вид, а линии — это то, что я рисую.

Вот мой код:

lineLayer.bounds = CGRectMake(0, 0, self.bounds.width, self.bounds.height);

lineLayer.strokeColor = UIColor.blackColor().CGColor
lineLayer.lineDashPattern = [3, 2, 1, 2, 1, 2, 1, 2, 1, 2]
lineLayer.lineWidth = lineLayer.bounds.height

var linePath = UIBezierPath()
linePath.moveToPoint(CGPointMake(0, CGRectGetMaxY(lineLayer.bounds)))
linePath.addLineToPoint(CGPointMake(CGRectGetMaxX(lineLayer.bounds), CGRectGetMaxY(lineLayer.bounds)))
lineLayer.path = linePath.CGPath;

Кто-нибудь знает, что я делаю неправильно?

Спасибо

РЕДАКТИРОВАТЬ: я добавил вызов layoutSubview и переместил смещение от x до y:

введите здесь описание изображения


person Jan    schedule 09.11.2014    source источник


Ответы (1)


Хорошо, моя ошибка заключалась в том, что я думал, что UIBezierPath описывает край рисунка. Вместо этого он описывает центр. Итак, я изменил свой код на:

linePath.moveToPoint(CGPointMake(0, CGRectGetMidY(lineLayer.bounds)))
linePath.addLineToPoint(CGPointMake(CGRectGetMaxX(lineLayer.bounds), CGRectGetMidY(lineLayer.bounds)))

и это работает

person Jan    schedule 09.11.2014