Iphone 使用elementCount和elementAtIndex使UIBezierPath更像NSBezierPath
将一些Cocoa代码移动到Cocoa Touch时,我失望地发现UIBezierPath缺少“访问路径元素”方法:Iphone 使用elementCount和elementAtIndex使UIBezierPath更像NSBezierPath,iphone,ios,cocoa-touch,uibezierpath,Iphone,Ios,Cocoa Touch,Uibezierpath,将一些Cocoa代码移动到Cocoa Touch时,我失望地发现UIBezierPath缺少“访问路径元素”方法: 在Cocoa Touch中获取这些元素的唯一方法似乎是通过CGPathApply。在我尝试将其重新创建为UIBezierPath的子类或类别之前,我想知道这是否已经完成了。有人知道这样的东西是否已经有了吗?几个月前我遇到了同样的问题,当时找不到任何现成的东西。(说实话,因为走cgpathpapply路线对我的需求来说并不是那么糟糕,所以说实话我看起来并不难) 为CGPath中的每个
在Cocoa Touch中获取这些元素的唯一方法似乎是通过
CGPathApply
。在我尝试将其重新创建为UIBezierPath的子类或类别之前,我想知道这是否已经完成了。有人知道这样的东西是否已经有了吗?几个月前我遇到了同样的问题,当时找不到任何现成的东西。(说实话,因为走cgpathpapply
路线对我的需求来说并不是那么糟糕,所以说实话我看起来并不难)
为CGPath
中的每个CGPathElement
调用applier函数,这样的元素由CGPathElementType
和CGPoints
的C数组组成
因为CGPathElementType
是一个只有五个不同值的枚举
enum CGPathElementType {
kCGPathElementMoveToPoint,
kCGPathElementAddLineToPoint,
kCGPathElementAddQuadCurveToPoint,
kCGPathElementAddCurveToPoint,
kCGPathElementCloseSubpath
};
对路径进行(控制)点操作/检查不需要编写那么多代码。不过,如果有相同的接口就好了。我在上做了一个端口,但它使用的是Swift。
有一个测试套件和文档。
从Beta 5开始工作
从技术上讲,您应该能够在Obj-C项目上使用Swift
让我知道你喜欢它 我不确定,但这可能有点帮助
enum CGPathElementType {
kCGPathElementMoveToPoint,
kCGPathElementAddLineToPoint,
kCGPathElementAddQuadCurveToPoint,
kCGPathElementAddCurveToPoint,
kCGPathElementCloseSubpath
};