筆記 圓角四種方法的對比以及效能檢測

2021-09-11 12:51:21 字數 1286 閱讀 4191

這篇文章是繼筆記-ios設定圓角方法以及指定位置設圓角文章而寫的,因為上篇文章發出來後,沒有驗證,也有同行的朋友讓我給出一些測試資料來證實一下,所以這裡就給出一下我個人的一些測試資料,正確是否,還請大家作為參考。--------另外,我寫這個僅僅只是自己作為筆記使用,原來都是放在草稿裡的,但是手機版的無法檢視草稿,所以就發出來,沒有想過會有人來看,所以如果有錯誤的內容誤導了大家請原諒,也請發現錯誤的猿友及時幫忙提出,謝謝大家。

對離屏渲染的檢測,蘋果為我們提供了乙個測試工具core animation。可以在xcode->open develeper tools->instruments中找到。

對uiimageview設定:

結果:無離屏渲染

滾動的幀率:

結果:接近60,趨於穩定

對uibutton設定:

結果:離屏渲染

滾動的幀率:

對uiimageview設定:

幀率結果:

對uibutton設定:

幀率結果:

兩種設定均是無離屏渲染

對uiimageview設定:

幀率結果:

對uibutton設定:

幀率結果:

兩種設定均是無離屏渲染

上面兩種方式均是無離屏渲染,是什麼原因導致了掉幀?

對uiimageview設定:

幀率結果:

對uibutton設定:

幀率結果:

兩種都是離屏渲染,掉幀更加嚴重。基本上不能使用。

由上述測試可以知道,我上篇文章裡所記筆記是有問題的。這裡的測試結果可以看的徹底。

方法1 還是利用core graphics框架

對uiimageview

幀率結果:

對uibutton

幀率結果:

兩種都是無離屏渲染,不論是對uiimageview,還是對uibutton設定都ok。

方法2 通過混合圖層

此方法就是在要新增的檢視上在疊加乙個部分透明的檢視,只對圓角部分進行遮擋。圖層混合的透明度處理方式與mask正好相反。 此方法沒有離屏渲染,沒有額外的cpu計算,但是應用範圍有限。

總結

iOS設定圓角的四種方法

一 設定calayer的cornerradius cornerradius屬性影響layer顯示的background顏色和前景框border,對layer的contents不起作用。故乙個imgview 型別為uiimageview 的image不為空,設定imgview.layer的corner...

PHP遞迴四種方法

data json data str replace data arr json decode data true print r arr dir foreach arr as k v header content type text html charset utf 8 print r arr p...

執行緒同步四種方法

執行緒同步的方法 1 wait 使乙個執行緒處於等待狀態,並且釋放所持有的物件的lock。2 sleep 使乙個正在執行的執行緒處於睡眠狀態,是乙個靜態方法,呼叫此方法要捕捉 interruptedexception異常。3 notify 喚醒乙個處於等待狀態的執行緒,注意的是在呼叫此方法的時候,並...