Iphone 在视图中绘制线:不绘制

Iphone 在视图中绘制线:不绘制,iphone,uiview,drawing,cgcontext,Iphone,Uiview,Drawing,Cgcontext,我在试图划清界限 我的密码是 -(void) drawRect:(CGRect) rect { NSLog(@"Reached Draw ARect Function"); CGContextRef ctx = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(ctx, 2.0); CGContextSetRGBStrokeColor(ctx, 1.0, 2.0, 0, 1); CGContex

我在试图划清界限

我的密码是

-(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];

}

有人能帮我吗?

你应该子类化一个
UIView
,并像你现在做的那样,将你的线条绘制代码移动到
drawRect:
方法(只希望它是UIView子类,而不是UIViewController)

您还必须确保在InterfaceBuilder中将UIView子类用于要绘制到的视图。你不应该自己调用这个方法。如果你想制作动画,你应该调用
[view setNeedsDisplay]
请求重新绘制视图。




…和…您应该添加
CGContextBeginPath(ctx)
在调用
CGContextMoveToPoint

之前,不能直接调用drawRect


相反,您可以在UIView上调用setNeedsDisplay,返回,然后等待操作系统稍后使用适当的上下文调用UIView的drawRect。

如果需要调用

- (void)drawRect:(CGRect)rect
方法在用户拖动特定视图时,只需放置以下代码:

[self.view setNeedsDisplay];
然后


方法将自动调用

im子类化UIViewController,如何将其更改为UIView。或者如何在继承了UIViewController[等待答案]的类中进行绘制我在这里做了一个小示例查看文件subclass view.h和.mThank了解源代码和时间。我会在检查后回复。epatel,它工作了…:我非常感谢你。但我还有一个问题。只有当我们将视图的类更改为“subclass视图”时,它才会起作用。我正在以编程方式创建视图。[问题描述]我的主视图包含3个按钮。当按下任何按钮时,将加载另一个名为“DetailedView”的视图。按钮1和2将在“DetailedView”中创建一个tableview。按钮3必须绘制一条线。[如果你没有理解我的意思,请回复][对不起,我的英语很差][等待你的回复]对不起,我真的不明白你想要什么。只需点击一个按钮就可以画出一条线,这有很多方法。
[self.view setNeedsDisplay];
- (void)drawRect:(CGRect)rect