Рисование линий в UIView в Objective-C - PullRequest
0 голосов
/ 18 ноября 2011

На это можно ответить в другом месте, если мне так стыдно ...

Я рисую таблицу в UIView (который добавляется в UITableViewcell), и в настоящее время я выкладываю текст в строкахи столбцы, но с точки зрения границ, я использую изображение (верхняя линия с угловым радиусом, нижняя линия, вертикальная линия и горизонтальная линия).

Я хочу нарисовать их, используяCGContextMoveToPoint code, но возможно ли указать UIView для использования?В методе все добавляется в динамически создаваемое представление, я хочу нарисовать линии в этом представлении перед его возвратом.

Кажется, что это не сработает, переопределяя drawRect?

, т.е.в псевдокоде:

-(UIView *)myView {
    UIView *myView = [[UIView alloc] initWithFrame:CG.....];
    foreach(NSDictionary *d in rowArray) {
        //draw left column text
        //draw right column text
    }
    //This is what i want to do?
    CGContextRef currentContext = UIGraphicsGetCurrentContext(myView?????);
}

Ответы [ 3 ]

4 голосов
/ 18 ноября 2011

Если вы хотите рисовать без изображения в памяти, вы должны сделать это с drawRect, так как оно будет отбрасываться каждый кадр, а не сохраняться. если вы хотите что-то сохранить, вы можете создать изображение, нарисовать его и добавить в представление.

2 голосов
/ 18 ноября 2011

почему бы просто не создать подкласс UIView, который будет выполнять рисование в drawRect:?Я считаю, что не очень хорошая идея размещать код для рисования вне drawRect: метод.

0 голосов
/ 18 ноября 2011

Для вещей, которые вы просто хотите нарисовать один раз, вы можете malloc растровое изображение соответствующего размера, использовать это растровое изображение для создания CGBitmapContext, рисовать в этом контексте, создавать изображение из этого контекста и назначать этот CGImageRef для CALayer из ваш UIView (или оверлей UIView).

...