替换凯莱尔



我按照这个答案使用CALayer创建梯度。这键盘命令是

[view.layer insertSublayer:gradient atIndex:0];

我的问题是我想定期更新渐变。如果我反复调用上面的代码,那么当新的渐变被放置在旧的梯度下时,什么都不会发生。看这个答案。

我的问题是:如何用另一个子层替换子层。我可能应该打电话 replaceSublayer:with: .但要做到这一点,我需要参考旧的渐变。有没有一种动态的方式来获得这个。像[view.layer getSublayerAtIndex: 0]?在视图控制器中存储对当前渐变的引用是最简单的方法吗?

想法?

    [[view layer] replaceSublayer:[[[view layer] sublayers] objectAtIndex:0] with:gradient];

如果要获取子图层,则应使用此方法:

[view.layer.sublayers objectAtIndex:0];

然后,您可以通过以下方式替换子图层

[view.layer replaceSublayer:[view.layer.sublayers objectAtIndex:0] with:yourNewGradient];

除了替换图层之外,您还可以更新现有 CAGradientLayer 的colorslocations 和其他属性来更改显示渐变的参数。

相关内容

  • 没有找到相关文章

最新更新