如何从一系列点绘制填充的形状并获得该形状内的水龙头?

时间:2011-08-12 15:13:49

标签: iphone objective-c ios cocoa-touch

在我的应用程序中,我有一系列由用户添加的点,我希望能够从这些点创建填充形状。

我也希望能够在形状内获得任何水龙头(不是形状的矩形框架,而是实际形状本身)。此外,如果水龙头不在形状内(但可能仍在形状的框架内),我希望水龙头“向下传递”到下面的形状(如果有)。

从某种意义上说,我试图从一系列点创建一个不规则形状的UIButton。

1 个答案:

答案 0 :(得分:5)

  1. 创建UIView
  2. 的子类
  3. 在其中,从点数组(UIBezierPathmoveToPoint:)创建addLineToPoint:属性。
  4. drawRect:中,使用贝塞尔曲线路径绘制形状(调用fillstroke或两者)。
  5. 对于点击测试,请覆盖pointInside:withEvent:并根据-[UIBezierPath containsPoint:]的返回值返回正确的值。
  6. 如果它们彼此不同,请确保在视图和路径的坐标系之间正确转换。