如何将drawRect()挂钩到视图以编程方式创建的子视图?

时间:2011-11-09 13:45:56

标签: iphone objective-c

我使用以下代码创建子视图:

-(void) viewDidLoad
{
    CGRect subviewRect = CGRectMake(0, 0, 320, 320);
    mysubview = [[UIView alloc] initWithFrame:subviewRect];
    [mysubview setBackgroundColor:[UIColor whiteColor]];
    [self.view addSubview:mysubview];
}

我想在这个子视图中绘制一些图形,所以我想我需要访问它的drawRect函数但是如何以编程方式将drawRect()挂钩到mysubview?

3 个答案:

答案 0 :(得分:3)

mysubview = [[UIView alloc] initWithFrame:subviewRect]; 

应该是

mysubview = [[AustinPowersView alloc] initWithFrame:subviewRect]; 

其中AustinPowersViewUIView的子类,其中您已覆盖drawRect:

答案 1 :(得分:1)

您需要继承UIView并覆盖其drawRect:方法。

虽然Apple声明

  

如果您的视图绘制自定义内容,请实施此方法。如果你的观点   不做任何自定义绘图,避免重写此方法。

因此,如果您只需添加“普通”UIKit界面元素,则应将它们添加为子视图,并让视图处理其绘图。

答案 2 :(得分:1)

不会对UIView进行子类化并覆盖-drawRect:吗?