2016-08-25 3 views
1

Я новичок в context концепции в программировании Apple iOS. В настоящее время я думаю в views. Я хочу нарисовать дугу, используя самый простой способ, и тогда я нашел это question and answer. Но тогда меня путают с концепцией контекста. Я думал что-то нарисовать, мне нужно будет вызвать функцию рисования и поставить view, где я хочу, чтобы функция рисования рисовала. Но там я смутился с UIGraphicsGetCurrentContext(). Что такое «текущий контекст»? Это UIScreen.mainScreen()? Как, если я хочу установить «текущий контекст» для представления внутри UICollectionViewCell, чтобы весь рисованный пиксель был относительно вида? Я могу это сделать?Как сделать CGContextDrawPath нарисованным на вложенном подвью?

ответ

1

Способ, которым вы рисуете CocoaTouch, относится к подклассу UIView для создания пользовательского представления и реализации метода drawRect:(CGRect)rect. Поместите код чертежа внутри drawRect. Что-то вроде:

-(void)drawRect:(CGRect)rect { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGPathRef path = CGPathCreateWithRect(rect, NULL); 
    [[UIColor blueColor] setStroke]; 
    CGContextSetLineWidth(context, 4.0); 
    CGContextAddPath(context, path); 
    CGContextDrawPath(context, kCGPathFillStroke); 
    CGPathRelease(path); 
} 

Вы можете разместить свой пользовательский UIView внутри UICollectionViewCell, если хотите.

+0

Подождите, так что я подклассифицирую 'UIView' (для ex:' WOWView'), а затем представление на раскадровке, которое я задал классом как 'WOWView'? –

+0

Да, это так. – EricS

+0

И игнорировать параметр 'rect' для drawRect. Он используется только как оптимизация в сложных представлениях. – EricS

Смежные вопросы