繁体   English   中英

取代CALayer

[英]replace CALayer

我正在按照这个答案使用CALayer创建渐变。 关键命令是

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

我的问题是我想定期更新渐变。 如果我反复调用上面的代码,那么将新的渐变放置在旧的渐变之下就不会发生任何事情。 看到这个答案

我的问题是:如何用另一层替换子层。 我可能应该调用replaceSublayer:with: 但是要做到这一点,我需要参考旧的渐变。 是否有一种动态的方式来获得这一点。 类似于[view.layer getSublayerAtIndex: 0] 是否是在ViewController中仅存储对当前渐变的引用的最简单方法?

有想法吗?

    [[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和其他属性来改变显示的梯度的参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM