我有一堆定义如下的路径:
_shapeMutablePath = CGPathCreateMutable();
CGPathMoveToPoint(_shapeMutablePath, NULL, 95.97,36.29);
CGPathAddCurveToPoint(_shapeMutablePath, NULL, 96.02,29.11,90.75,23.00,83.54,21.40);
CGPathAddCurveToPoint(_shapeMutablePath, NULL, 62.64,66.59,64.11,66.96,65.66,67.12);
CGPathAddCurveToPoint(_shapeMutablePath, NULL, 74.52,68.04,82.49,62.03,83.47,53.69);
CGPathAddCurveToPoint(_shapeMutablePath, NULL, 83.57,52.83,83.59,51.98,83.54,51.15);
CGPathAddCurveToPoint(_shapeMutablePath, NULL, 90.74,49.56,96.01,43.45,95.97,36.29);
CGPathCloseSubpath(_shapeMutablePath);
其中一些我必须经常重复使用,所以我想知道存储和检索这些信息的最佳方式是什么?是否可以将其保存为常量文件中的常量?
创建路径的计算时间与在屏幕上绘制路径的时间相比微不足道,因此使用静态方法或按需创建路径应该不会成为问题
或者,您可以创建一个静态类来存储要重用的不同路径
你总是可以像这个一样延迟加载
添加属性
@property (nonatomic, assign, readonly) CGMutablePathRef shapeMutablePath;
然后覆盖getter
- (CGMutablePathRef)shapeMutablePath;
{
if (!_shapeMutablePath) {
_shapeMutablePath = CGPathCreateMutable();
CGPathMoveToPoint(_shapeMutablePath, NULL, 95.97,36.29);
CGPathAddCurveToPoint(_shapeMutablePath, NULL, 96.02,29.11,90.75,23.00,83.54,21.40);
CGPathAddCurveToPoint(_shapeMutablePath, NULL, 62.64,66.59,64.11,66.96,65.66,67.12);
CGPathAddCurveToPoint(_shapeMutablePath, NULL, 74.52,68.04,82.49,62.03,83.47,53.69);
CGPathAddCurveToPoint(_shapeMutablePath, NULL, 83.57,52.83,83.59,51.98,83.54,51.15);
CGPathAddCurveToPoint(_shapeMutablePath, NULL, 90.74,49.56,96.01,43.45,95.97,36.29);
CGPathCloseSubpath(_shapeMutablePath);
}
return _shapeMutablePath;
}
您还需要在dealloc 中进行清理
- (void)dealloc;
{
CGPathRelease(_shapeMutablePath);
}