如何使用CAShapeLayer以bezier路径掩盖UIView?

时间:2015-12-16 21:02:56

标签: ios objective-c uiview uibezierpath cashapelayer

我有一个带有图像的UIView。我在uiview上绘制了一条bezier路径,并且我试图根据bezier路径掩盖uiview,它可以工作,但是掩模一直向下移动。

以下是图片:

我在视图上画了一条更好的路径:

最后的结果,在我应用掩码后:

以下是我的尝试:

-(void)sendBezierPath:(UIBezierPath *)path{
    //this method gets hit after the bezier path gets interesected
    _shapeLayer=[[CAShapeLayer alloc]init];
    _shapeLayer.frame=imageUIView.frame;
    _shapeLayer.path=path.CGPath;
    imageUIView.layer.mask=_shapeLayer;

   }

正如你所看到的,我没有给形状图层任何位置,但是在我打印形状图层位置后,它给了我值(160,294)。

我可以通过

移动形状图层以获取当前位置
     //  shapeLayer.position=CGPointMake(160, 100);

但我想知道为什么它会走到错误的位置。它的速度几乎下降了40px。

0 个答案:

没有答案