我目前正在开发像“kresta app”这样的应用程序。首先,我从照片库中选择了图像。接下来,我的工作是用户可以选择他想要应用盲区和阴影的区域。所以我想做的是我有四个引脚,用户可以触摸和拖动引脚进行区域选择。我用下面的代码实现了这个逻辑。
JPG
在移动的触摸中我称这种方法
UIBezierPath *aPath = [UIBezierPath bezierPath];
// Set the starting point of the shape.
[aPath moveToPoint:pinImageView1.center];
// Draw the lines.
[aPath addLineToPoint:pinImageView2.center];
[aPath addLineToPoint:pinImageView3.center];
[aPath addLineToPoint:pinImageView4.center];
[aPath closePath];
CAShapeLayer *square = [CAShapeLayer layer];
square.path = aPath.CGPath;
[pickedImageView.layer addSublayer:square];
我的问题是它每次添加一个图层。如何实现这个逻辑?有什么方法可以删除上一层并更新新图层?或者我的方式错了,如果有错,请建议任何其他方式来实现这个逻辑。
答案 0 :(得分:1)
如果在类属性中保存对此CAShapeLayer
的引用,则可以一次又一次更新其path
属性,它将自动更新视图图层上的子图层。因此,addSublayer
一次,然后在将来,只要您希望反映屏幕上覆盖图像的形状变化,就可以更新此path
的{{1}}。