這篇文章是繼筆記-iOS設置圓角方法以及指定位置設圓角文章而寫的,由於上篇文章發出來後,沒有驗證,也有同行的朋友讓我給出一些測試數據來證明一下,因此這裏就給出一下我我的的一些測試數據,正確是否,還請你們做爲參考。--------另外,我寫這個僅僅只是本身做爲筆記使用,原來都是放在草稿裏的,可是手機版的沒法查看草稿,因此就發出來,沒有想過會有人來看,因此若是有錯誤的內容誤導了你們請原諒,也請發現錯誤的猿友及時幫忙提出,謝謝你們。app
對離屏渲染的檢測,蘋果爲咱們提供了一個測試工具Core Animation。能夠在Xcode->Open Develeper Tools->Instruments中找到。框架
對UIImageview設置:工具
滾動的幀率:post
對UIButton設置:性能
滾動的幀率: 測試
若是低於40幀每秒,普通用戶就會察覺明顯的不流暢,如今這樣app進入垃圾級別體驗了。優化
對UIImageview設置:
幀率結果: 3d
對UIButton設置:
幀率結果:code
兩種設置均是無離屏渲染cdn
對UIImageview設置:
幀率結果:
上面兩種方式均是無離屏渲染,是什麼緣由致使了掉幀?
對UIImageview設置:
幀率結果:
兩種都是離屏渲染,掉幀更加嚴重。基本上不能使用。
由上述測試能夠知道,我上篇文章裏所記筆記是有問題的。這裏的測試結果能夠看的完全。
方法1 仍是利用Core Graphics框架
對UIImageView
幀率結果:
對UIButton
幀率結果:
兩種都是無離屏渲染,不管是對UIImageView,仍是對UIButton設置都OK。
方法2 經過混合圖層
此方法就是在要添加的視圖上在疊加一個部分透明的視圖,只對圓角部分進行遮擋。圖層混合的透明度處理方式與mask正好相反。 此方法沒有離屏渲染,沒有額外的CPU計算,可是應用範圍有限。
總結