iphone — Могу ли я нарисовать экземпляр UIView в drawRect?

Я пытаюсь что-то вроде ниже

UIView * view = [UIView new];
view.frame = CGRectMake(50, 50, 200, 200);
view.bounds = CGRectMake(0, 0, 400, 400);
view.backgroundColor = [UIColor grayColor];
UIButton * btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setFrame:CGRectMake(50, 50, 300, 50)];
[btn setTitle:@"Button" forState:UIControlStateNormal];
[view addSubview:btn];
CALayer * layer = [view layer];
[layer drawInContext:ctx];

Мои вопросы:
1) Подобно тому, как мы рисуем изображения или текст с помощью CGContextRef, можем ли мы рисовать экземпляр UIView таким же образом?

Я не очень хорошо знаком с основной графической структурой, поэтому, пожалуйста, дайте мне знать о возможностях. Моя основная цель состоит в том, чтобы иметь возможность рисовать пользовательские представления в drawRect, используя CGContextRef любым способом.

Заранее спасибо !!!


person Bharat Jagtap    schedule 16.11.2011    source источник


Ответы (1)


Вы должны реализовать метод -(void)drawRect:(CGRect)rect в своем подклассе UIView. В этом методе вы должны рисовать в текущем контексте.

person debleek63    schedule 16.11.2011
comment
На самом деле моя идея состоит в том, чтобы создать представление с кнопками и изображениями, а затем нарисовать это пользовательское представление везде, где мне нужно. Я не думаю, что мы можем нарисовать кнопку или что-то в этом роде. Поэтому я думал добиться этого таким образом, но пока безуспешно... - person Bharat Jagtap; 16.11.2011
comment
@BharatJ: Зачем вам рисовать представление с кнопками, как если бы это было изображение? Если вы хотите, чтобы представление и его подпредставления отображались в вашем представлении, добавьте его как подпредставление. - person Peter Hosey; 16.11.2011
comment
@PeterHose: На самом деле я хочу реализовать эффект скручивания страницы для своих представлений. Все коды, которые я загрузил, говорят, что рисуют представление, как будто я получаю контекстную ссылку, вот и все. Для эффекта скручивания страницы вам нужно рисовать представления... Но я хочу, чтобы для каждой страницы было другое представление... Там я застрял... - person Bharat Jagtap; 17.11.2011