2011-08-12 9 views
2

私のアプリでは、ユーザーが追加したポイントの配列があり、これらのポイントから塗りつぶした形を作成したいと考えています。点の配列から塗りつぶした図形を描画し、その図形内でタップを取得する方法は?

また、形状内のタップ(形状の矩形枠ではなく実際の形状そのもの)を取得したいと考えています。また、タップがシェイプ内にない場合(ただし、シェイプのフレーム内にある可能性もあります)、タップがある場合はその下のシェイプにタップします。

ある意味では、ポイントの配列から不規則な形のUIButtonを作成しようとしています。

答えて

5
  1. UIViewのサブクラスを作成します。
  2. 点配列(とaddLineToPoint:)からUIBezierPathプロパティを作成します。
  3. drawRect:にベジェパスを使用して形状を描画します(fillまたはstrokeまたはその両方)。
  4. ヒットテストの場合は、pointInside:withEvent:をオーバーライドし、戻り値-[UIBezierPath containsPoint:]に基づいて正しい値を返します。

ビューとパスの座標系が異なる場合は、必ずそれらを正しく変換してください。

関連する問題