从ViewController实例化DrawRect视图

时间:2013-08-13 02:03:15

标签: ios objective-c

如果这可能是一个简单的问题,我道歉。我对使用draw rect相当新,当绘制rect在视图子类中时,我想在我的视图控制器中从我的ViewDidLoad调用它。到目前为止我所要做的就是这个,但它没有做任何事情。我需要添加什么?谢谢

circleView = [[CircleView alloc] init];
[self.view addSubview:circleView];
[circleView setNeedsDisplay];

以下是我的圈子视图中的代码

- (void)drawRect:(CGRect)rect
{
    NSLog(@"worked");
    CGContextRef contextRef = UIGraphicsGetCurrentContext();
    CGContextSetRGBFillColor(contextRef, 0, 0, 255, 0.1);
    CGContextSetRGBStrokeColor(contextRef, 0, 0, 255, 0.5);

    CGContextStrokeEllipseInRect(contextRef, CGRectMake(100, 100, 25, 25));

}

多数民众赞成。我知道可能需要初始化框架,但我不知道如何选择绘制矩形。

1 个答案:

答案 0 :(得分:3)

无需在[circleView setNeedsDisplay];中明确致电-viewDidLoad,因为UIView会在第一次显示时自动调用-drawRect:。{ 您的circleView未显示,因为其frame为{0,0; 0,0}。您可能需要给它一个有意义的frame,如下所示:

circleView = [[CircleView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];

或设置其frame属性:

circleView.frame = CGRectMake(0, 0, 200, 200);