2012-12-10 67 views
3

我目前做如下:畫一個圓圈的UIButton性能

按鈕
self.userProfileButton.layer.borderColor=[UIColor whiteColor].CGColor; 
    self.userProfileButton.layer.borderWidth=1.5f; 
    self.userProfileButton.layer.cornerRadius = 25; 

大小爲50,所以這使得它作爲一個完美的圓。但是,當我使用這種儀器進行分析時,似乎它將FPS降低了一點。任何其他想法如何做這個表現明智?

+1

改爲使用具有圓形圖像的自定義按鈕? –

+0

我從後端得到的圖像是一個正方形..如果是這種情況,我不得不在我的最後裁剪它成爲一個圓圈 – adit

回答

4

柵格化它!

self.userProfileButton.layer.shouldRasterize = YES; 
//For retina screens: 
self.userProfileButton.layer.rasterizationScale = [[UIScreen mainScreen] scale]; 
+0

你能解釋如何柵格化它會加速它嗎? – adit

+0

@adit它導致CALayer在合成之前應用具有所有CALayer屬性(如角半徑)的按鈕圖像;否則視圖的主要內容會被緩存,但是圖層屬性在合成時會被應用(並重新應用,令人生厭)。 – Tommy

+0

@adit當光柵化圖層時,圖層變平,所以所有修改(陰影,圓角半徑等等)無限期地應用於圖層。沒有光柵化,圖層修改應用於每一幀,這就是爲什麼它減慢你的應用程序。 – ninjaneer