【问题标题】:How to obtain CGPathRef from a view whose mask has been set to that CGPathRef?如何从掩码已设置为该 CGPathRef 的视图中获取 CGPathRef?
【发布时间】:2018-02-26 18:42:57
【问题描述】:

我有一个视图,我之前在某些方法中设置了蒙版,现在我想提取 CGPathRef,它是蒙版的形状,而没有任何内容,只是带有蒙版的视图。我该怎么做?

CAShapeLayer* maskLayer = [CAShapeLayer layer];
                maskLayer = (CAShapeLayer* )myView.layer.mask;
                CGPathRef x = maskLayer.path;

试过了,没用。

【问题讨论】:

  • 检查 maskLayer 是否不为零
  • 是的,这就是问题所在,应用了遮罩,“myView.layer.mask;”不是 nil,但分配不起作用,maskLayer 为空。
  • BTW.: 第一行maskLayer的初始化完全没必要。
  • @SudhanshuMonga 这是你的问题,似乎 myView.layer.mask 不是 CAShapeLayer,所以你无法从中获取路径,我将在一个示例中测试你的案例场景并检查是否可以完成
  • @ReinierMelian 有没有办法获得路径呢?我只需要路径。

标签: ios objective-c cashapelayer


【解决方案1】:

如果CAShapeLayerCALayer 子类,则您可以获得CALayer 的路径,因此如果您的myView.layer.mask 不是CAShapeLayer 对象,您将无法获得CGPath,您可以检查如果它是正确的类进行检查

NSLog(@"%@",NSStringFromClass(myView.layer.mask.class));

这个必须打印

CAShapeLayer

【讨论】:

  • 不幸的是它会打印 CALayer。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-07
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多