性能優(yōu)化之-設(shè)定Shadow Path

摘自:iOS應(yīng)用性能調(diào)優(yōu)的25個(gè)建議和技巧

如何在一個(gè)View或者一個(gè)layer上加一個(gè)shadow呢,QuartzCore框架是很多開發(fā)者的選擇:

#import
// Somewhere later ...
UIView *view = [[UIView alloc] init];

// Setup the shadow ...
view.layer.shadowOffset = CGSizeMake(-1.0f, 1.0f);
view.layer.shadowRadius = 5.0f;
view.layer.shadowOpacity = 0.6;

看起來很簡單,對吧。

可是,壞消息是使用這個(gè)方法也有它的問題… Core Animation不得不先在后臺(tái)得出你的圖形并加好陰影然后才渲染,這開銷是很大的。

使用shadowPath的話就避免了這個(gè)問題:

view.layer.shadowPath = [[UIBezierPath bezierPathWithRect:view.bounds] CGPath];

使用shadow path的話iOS就不必每次都計(jì)算如何渲染,它使用一個(gè)預(yù)先計(jì)算好的路徑。但問題是自己計(jì)算path的話可能在某些View中比較困難,且每當(dāng)view的frame變化的時(shí)候你都需要去update shadow path.

想了解更多可以看看Mark Pospesel的<a >這篇</a>。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容