簡體   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