在我的应用程序中,我有一个由用户添加的点数组,我希望能够从这些点创建一个填充形状。
我还希望能够获得形状内的任何点击(不是形状的矩形框架,而是实际形状本身)。另外,如果水龙头不在形状内(但可能仍在形状的框架内),我希望水龙头“向下传递”到下面的形状(如果有的话)。
从某种意义上说,我试图从一组点创建一个不规则形状的 UIButton。
最佳答案
- 创建
UIView
的子类。 - 在其中,从点数组(
moveToPoint:
和addLineToPoint:
)创建一个UIBezierPath
属性。 - 在
drawRect:
中,使用贝塞尔曲线路径绘制形状(调用fill
或lines
或两者)。 - 对于 HitTest ,请重写
pointInside:withEvent:
并根据-[UIBezierPath containsPoint:]
的返回值返回正确的值。
如果 View 坐标系和路径坐标系彼此不同,请确保在它们之间正确转换。
关于iphone - 如何从点数组中绘制填充形状并在该形状内获得点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7042217/