1

線を引こうとしています

私のコードはこれです

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

}

誰か助けてくれませんか?

4

3 に答える 3

3

をサブクラス化し、UIView線画コードをdrawRect:メソッドに移動する必要があります(UIViewControllerではなくUIViewサブクラス用であることを期待してください)。

- (void)drawRect:(CGRect)rect {

   [super drawRect:rect];

   // Place your code here

}

また、描画するビューにInterfaceBuilderのUIViewサブクラスを使用していることを確認する必要があります。このメソッドを自分で呼び出す必要はありません。何かをアニメーション化する場合は、を呼び出して[view setNeedsDisplay];ビューの再描画を要求する必要があります。



...そして...CGContextBeginPath(ctx);電話をかける直前に追加する必要がありますCGContextMoveToPoint

于 2010-08-28T07:07:07.973 に答える
0

drawRectを直接呼び出すことはできません。

代わりに、UIViewでsetNeedsDisplayを呼び出し、戻って、OSが後で適切なコンテキストでUIViewのdrawRectを呼び出すのを待ちます。

于 2010-08-28T18:54:22.823 に答える
0

電話する必要がある場合

- (void)drawRect:(CGRect)rect

ユーザーが特定のビューをドラッグしているときに動的にメソッドを実行するには、次のコードを配置するだけです。

[self.view setNeedsDisplay];

それから

- (void)drawRect:(CGRect)rect

メソッドは自動的に呼び出されます

于 2013-01-21T11:56:19.847 に答える