[英]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的colors
, locations
和其他屬性來改變顯示的梯度的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.