【问题标题】:move uiimage inside a bezier curve在贝塞尔曲线内移动 uiimage
【发布时间】:2011-12-06 20:13:48
【问题描述】:

我用贝塞尔曲线画了一个圆,我用这个圆作为 uiimage 视图的遮罩。现在,我如何在不使用触摸移动圆圈的情况下移动圆圈内的图像。 这是我的代码。

       CAShapeLayer *maskLayer = [CAShapeLayer layer];

aPath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(220, 220)
                                       radius:170
                                   startAngle:0
                                     endAngle:DEGREES_TO_RADIANS(360)
                                    clockwise:YES];

maskLayer.backgroundColor = [[UIColor clearColor] CGColor];
maskLayer.path = [aPath CGPath];

maskLayer.masksToBounds=YES;

imageView1.layer.mask = maskLayer;

[self.view addSubview:imageView1];

【问题讨论】:

  • 使用[UIBezierPath bezierPathWithOvalInRect:CGRectMake(0,0,220,220)]; 可能比bezierPathWithArc... 容易很多

标签: objective-c cocoa-touch ipad uiimageview bezier


【解决方案1】:

遮罩的坐标与视图层的坐标相同 = 它会随着视图移动。

您可以将图像添加到另一个视图中并屏蔽该视图。然后您可以将图像移动到另一个视图中,并且遮罩将保持不变。

或者(但实际上是相同的解决方案)您可以将蒙版保留在该图层上,并添加带有图像的子图层并移动它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    相关资源
    最近更新 更多