我想画一条线
我的代码就是这个
-(void) drawRect:(CGRect) rect
{
NSLog(@"Reached Draw ARect Function");
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(ctx, 2.0);
CGContextSetRGBStrokeColor(ctx, 1.0, 2.0, 0, 1);
CGContextMoveToPoint(ctx, 0, 0);
CGContextAddLineToPoint( ctx, 100,100);
CGContextStrokePath(ctx);
}
我从viewDidLoad调用如下
- (void)viewDidLoad {
[super viewDidLoad];
CGRect k = CGRectMake(1.0, 1.0, 100.0, 200.0);
[self.view drawRect:k];
}
任何人都可以帮助我吗?
答案 0 :(得分:3)
您应该将UIView
子类化并将您的线条图代码移动到drawRect:
方法,就像您正在做的那样(只是希望它是UIView子类而不是UIViewController)
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
// Place your code here
}
您还必须确保在InterfaceBuilder中使用UIView子类作为您将要绘制的视图。您不必自己调用此方法。如果你想动画一些东西,你应该调用[view setNeedsDisplay];
来请求重绘视图。
......和......你应该在致电CGContextBeginPath(ctx);
CGContextMoveToPoint
答案 1 :(得分:0)
您无法直接调用drawRect。
相反,你在你的UIView上调用setNeedsDisplay,返回,并等待操作系统稍后用适当的上下文调用UIView的drawRect。
答案 2 :(得分:0)
如果需要致电
- (void)drawRect:(CGRect)rect
用户拖动特定视图时动态方法,只需放置以下代码:
[self.view setNeedsDisplay];
然后
- (void)drawRect:(CGRect)rect
方法将自动被调用