Рисование нескольких объектов в одном контексте с разными ориентациями - PullRequest
1 голос
/ 09 декабря 2010

Я пытаюсь нарисовать группу прямоугольников (до 2000) на одном UIView, используя цикл.Я могу легко добиться этого с помощью следующего кода в методе DrawRect UIView:

CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetLineWidth(context, 1.0);
    CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);
    CGContextSetFillColorWithColor(context, [UIColor tescoBlue].CGColor);

    for (NSDictionary *dict in storeDimensionsArray) {
        float x = [[dict objectForKey:@"X"] floatValue];
        float y = [[dict objectForKey:@"Y"] floatValue];
        float width = [[dict objectForKey:@"Width"] floatValue];
        float length = [[dict objectForKey:@"Length"] floatValue];

        CGContextAddRect(context, CGRectMake(x, y, length, width));
        CGContextDrawPath(context, kCGPathFillStroke);
        [self setNeedsDisplay];
    }

Однако каждый из моих прямоугольников может иметь различную ориентацию, которая представлена ​​углом (i градусами).Что касается жизни, я не могу понять, как нарисовать каждую фигуру с ее собственной независимой ориентацией, какие-либо идеи?

Я пробовал следующий код, но, похоже, он не работает.1007 *

У меня проблемы с движением головы.Кажется, гораздо более простым решением было бы изменить ориентацию прямоугольника.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 09 декабря 2010

По моему мнению, вы не можете использовать метод CGContextAddRect () для рисования прямоугольника в произвольной ориентации. Может быть, я ошибаюсь, но я думаю, что вы должны нарисовать их, используя:

CGContextMoveToPoint(context, x, y);
CGContextAddLineToPoint(context, x, y);
CGContextAddLineToPoint(context, x, y);
CGContextAddLineToPoint(context, x, y);
CGContextAddLineToPoint(context, x, y);
CGContextStrokePath(context);

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

...