4

我想通过设置它的框架来移动一个图层,但也没有移动图层剪辑。

我创建了一个创建如下的图层:

layer = [CustomLayer layer];
layer.frame = CGRectMake(50, 50, 100, 30);
[layer setNeedsDisplay];
[self.view.layer addSublayer:layer];

还有一个像这样的剪辑层:

clipLayer = [CAShapeLayer layer];
UIBezierPath *clipPath = [UIBezierPath bezierPathWithRoundedRect:layer.bounds
                                                    cornerRadius:10.0f];
clipLayer.path = clipPath.CGPath;
layer.mask = clipLayer;

但是,稍后在我的代码中,如果我设置图层框架:

layer.frame = CGRectOffset(layer.frame, -20.0, 0.0);

图层及其剪辑蒙版都是偏移的。我想要达到的效果是在圆角矩形剪切区域下方“滚动”一层。有任何想法吗?

4

1 回答 1

4

我会将剪辑层剪辑到第三层。这第三层需要:

  • 与要遮罩的图层大小相同
  • 位于要遮罩的图层的同一位置
  • 有 clearColor 背景颜色

然后只需移动底层,第三层及其裁剪层将保持不变。

注意:这对我有用 - 虽然,您还必须确保要移动的图层是剪辑图层的子视图。

于 2013-03-13T22:58:14.460 回答