19.
設定shadowpath
如何在乙個
view
或者乙個
layer
上加乙個
shadow
呢,quartzcore
框架是很多開發者的選擇: 123
4567
89
#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;
看起來很簡單,對吧。
可是,壞訊息是使用這個方法也有它的問題
…core animation
不得不先在後台得出你的圖形並加好陰影然後才渲染,這開銷是很大的。 使用
shadowpath
的話就避免了這個問題:
view.layer.shadowpath = [[uibezierpath bezierpathwithrect:view.bounds] cgpath]; 使用
shadow path
的話ios
就不必每次都計算如何渲染,它使用乙個預先計算好的路徑。但問題是自己計算
path
的話可能在某些
view
中比較困難,且每當
view
的frame
變化的時候你都需要去
update shadow path.
mark pospesel的這篇
。
iOS應用效能調優的25個建議和技巧 4
4.避免過於龐大的 xib ios5 中加入的 storyboards 分鏡 正在快速取代 xib。然而 xib在一些場景中仍然很有用。比如你的 需要適應 ios5 之前的裝置,或者你有乙個自定義的可重用的 view,你就不可避免地要用到他們。如果你不得不 xib的話,使他們盡量簡單。嘗試為每個 c...
ioS應用效能調優的25個建議和技巧 8
開啟 gzip 壓縮 大量依賴於遠端資源和第三方 apixml,json,html 或者其它格式的。問題是我們的目標是移動裝置,因此你就不能指望網路狀況有多好。乙個使用者現在還在 edge 網路,下一分鐘可能就切換到了 3g。不論什麼場景,你肯定不想讓你的使用者等太長時間。減小文件的乙個方式就是在服...
iOS應用效能調優的25個建議和技巧 10
10.cache,cache,還是cache 乙個極好的原則就是,快取所需要的,也就是那些不大可能改變但是需要經常讀取的東西。我們能快取些什麼呢?一些選項是,遠端伺服器的響應,甚至計算結果,比如 uitableview 的行高。nsurlconnection 缺省會快取資源在記憶體或者儲存中根據它所...