2009-08-18 13 views

答えて

1

どのように私は...一定の幅(例えば、10個のピクセルの直径)の単純なポイントを描画するコアグラフィックスを使用して、特定の色のない[?]

  1. Set the fill color.
  2. Move to the point.
  3. Plot an arcであり、所望の半径を有し、開始角度が0であり、終了角度が2 * M_PIである。

  4. Fill.
  • Close the path.
  • ...(とのdrawRectオーバーライドするクラスファイル - インスタンスへの参照のみ)インスタンス化UIImageViewの内側に描く

    私はその上で知っていますNSViewは何かが表示を必要とするように設定している(または表示するように直接指示した)場合は、いつでも再描画することができ、その上に描画されたものはすべて壊れてしまいます。 iPhoneについてはわかりませんが、UIViewにはNSViewのlockFocusunlockFocusのようなメソッドはありません。

    ドローイングはビューの排他的なドメインであり、その排他性を破り、コントローラの一部の描画コードを振りかざすことを提案しています。その目的を持たないオブジェクトの目的のための散乱コードは、乱雑で不可能なコードへの道です。

    前に各点のサブビューを作成し、画像ビューのサブビューとしてそれらを追加することがより良い、またはサブクラスUIImageView、描画する点の配列をサブクラスというのインスタンスを与え、そしてsuperまでサブクラスのdrawRect:電話を持っていますその点を描く。

    上記の解決策は、drawRect:に入ります。

    1

    また、コアアニメーションレイヤーをビューに追加することもできます。角の半径をあなたが望む点の半分の大きさに設定します(正方形と仮定します)、円として描画されます。ような何か:

    CALayer *layer = [CALayer layer]; 
    [layer setBounds:CGRectMake(0.0f, 0.0f, 10.0f, 1.0f)]; 
    [layer setCornerRadius:5.0f]; 
    [layer setMasksToBounds:YES]; 
    [layer setBackgroundColor:[[UIColor redColor] CGColor]]; 
    
    // Center the layer in the view. 
    [layer setPosition:CGPointMake([view bounds].size.width/2, 
              [view bounds].size.height/2)]; 
    
    // Add the layer to your view 
    [[view layer] addSublayer:layer]; 
    

    ないコアグラフィックスを正確に、それが実現するのは簡単です。

    よろしくお願いします。

    関連する問題