如果这可能是一个简单的问题,我道歉。我对使用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));
}
多数民众赞成。我知道可能需要初始化框架,但我不知道如何选择绘制矩形。
答案 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);