Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用elementCount和elementAtIndex使UIBezierPath更像NSBezierPath_Iphone_Ios_Cocoa Touch_Uibezierpath - Fatal编程技术网

Iphone 使用elementCount和elementAtIndex使UIBezierPath更像NSBezierPath

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代码移动到Cocoa Touch时,我失望地发现UIBezierPath缺少“访问路径元素”方法:


在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
};