Нарисуйте многоугольник и залейте его фоновым изображением - PullRequest
2 голосов
/ 27 апреля 2011

Я пытаюсь нарисовать многоугольник с четырьмя точками (A, B) (C, D) (E, F) (G, H), поэтому необязательно прямоугольник

Затем я хочу применить узорное изображение к многоугольнику.

Я изучил initWithPatternImage, colorWithPatternImage, UIBezierPath, CGContextStrokeLineSegments, но не могу понять, как все это собрать вместе.

У кого-нибудь есть идеи, как вы могли бы собрать их всех вместе?

ПРИМЕЧАНИЕ: я не использую Open GL

1 Ответ

4 голосов
/ 01 мая 2011

Не проверено, но должно работать так:

- (void)drawRect:(CGRect)rect
{
    UIColor *color = [UIColor colorWithPatternImage:myPatternImage];
    [color set];

    UIBezierPath *path = [UIBezierPath bezierPath];
    [path moveToPoint:p1];
    [path addLineToPoint:p2];
    [path addLineToPoint:p3];
    [path addLineToPoint:p4];
    [path closePath]; // Implicitly does a line between p4 and p1
    [path fill]; // If you want it filled, or...
    [path stroke]; // ...if you want to draw the outline.
}

Если вы хотите обвести его, вы можете установить ширину линии с помощью [path setLineWidth:5]; или что-то в этом роде, а также посмотреть другие свойства UIBezierPath , которые управляют внешним видом линии.

...