2016-08-25 8 views
1

アップルのiOSプログラミングでは、初めてcontextという概念を導入しました。現在、私はviewsで考えています。私は可能な限り簡単な方法で円弧を描きたいと思っていますが、それではquestion and answerが見つかりました。しかし、私は文脈の概念と混同しています。私は何かを描くことを考えました。私は描画関数を呼び出す必要があり、描画関数を描画する場所にはviewを指定する必要があります。しかしそこには、私はUIGraphicsGetCurrentContext()と混同しています。 「現在のコンテキスト」とは何ですか?それはUIScreen.mainScreen()ですか? UICollectionViewCell内のビューに「現在のコンテキスト」を設定して、描画されるすべてのピクセルがビューに対して相対的になるようにするにはどうすればよいですか?それをしてもいいですか?ネストされたサブビューでCGContextDrawPathを描画する方法は?

答えて

1

ココアタッチで描画する方法は、UIViewをサブクラス化してカスタム表示を作成し、drawRect:(CGRect)rectメソッドを実装することです。あなたの描画コードをdrawRectの中に入れてください。次のようなものがあります。

-(void)drawRect:(CGRect)rect { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGPathRef path = CGPathCreateWithRect(rect, NULL); 
    [[UIColor blueColor] setStroke]; 
    CGContextSetLineWidth(context, 4.0); 
    CGContextAddPath(context, path); 
    CGContextDrawPath(context, kCGPathFillStroke); 
    CGPathRelease(path); 
} 

カスタムUIViewは、必要に応じてUICollectionViewCellの内部に配置できます。

+0

私は 'UIView'(例:' WOWView')をサブクラス化し、次にストーリーボードのビューを 'WOWView'としてクラスを設定しましたか? –

+0

はい、そうです。 – EricS

+0

そして、drawRectの 'rect'パラメータを無視してください。これは、複雑なビューでの最適化としてのみ使用されます。 – EricS

関連する問題