Я пытаюсь нарисовать форму шеврона внутри своего подкласса UIView. Появляется шеврон, но стиль окончания строки и стили соединения строк, которые я применяю, не отражаются в выходных данных.
- (UIBezierPath *)chevron:(CGRect)frame
{
UIBezierPath* bezierPath = [[UIBezierPath alloc]init];
[bezierPath setLineJoinStyle:kCGLineJoinRound];
[bezierPath setLineCapStyle:kCGLineCapRound];
[bezierPath moveToPoint:CGPointMake(CGRectGetMinX(frame), CGRectGetMaxY(frame))];
[bezierPath addLineToPoint:CGPointMake(CGRectGetMaxX(frame), CGRectGetMaxY(frame) * 0.5)];
[bezierPath addLineToPoint:CGPointMake(CGRectGetMinX(frame), CGRectGetMinY(frame))];
return bezierPath;
}
-(void)drawRect:(CGRect)rect{
[self.color setStroke];
UIBezierPath *chevronPath = [self chevron:rect];
[chevronPath setLineWidth:self.strokeWidth];
[chevronPath stroke];
}
Согласно документам Apple, они говорят, что «после настройки геометрии и атрибутов пути Безье вы рисуете путь в текущем графическом контексте, используя методы обводки и заливки», но здесь это не работает — я пробовал перемещение операторов setLineJoinStyle
и setLineCapStyle
(например, после добавления LineToPoint внутри drawRect), и кажется, что независимо от того, сколько раз я их вызываю, это не работает. Любые идеи, что происходит не так?