iOS-設定視圖圓角樣式流暢解決方案

來源:互聯網
上載者:User

iOS-設定視圖圓角樣式流暢解決方案

代碼

//設定圓角視圖樣式-(void)setUpSelfView{    //陰影 Shadow    self.layer.shadowColor = [UIColor blackColor].CGColor; //黑    self.layer.shadowOpacity = 0.33;//陰影的不透明度    self.layer.shadowOffset = CGSizeMake(0, 1.5);//陰影的位移    self.layer.shadowRadius = 4.0;//陰影半徑    self.layer.shouldRasterize = YES; //圓角緩衝    self.layer.rasterizationScale = [UIScreen mainScreen].scale;//提高流暢度    //圓角    self.layer.cornerRadius = 10.0f;}

相關說明:
環境切換

環境切換,不管是在GPU渲染過程中,還是一直所熟悉的進程切換,環境切換在哪裡都是一個相當耗時的操作。首先我要儲存當前螢幕渲染環境,然後切換到一個新的繪製環境,申請繪製資源,初始化環境,然後開始一個繪製,繪製完畢後銷毀這個繪製環境,如需要切換到On-Screen Rendering或者再開始一個新的離屏渲染重複之前的操作。 描述了一次mask的渲染操作。

self.layer.shouldRasterize = YES;  self.layer.rasterizationScale = [UIScreen mainScreen].scale;

這樣大部分情況下可以馬上挽救你的幀數在55幀每秒以上。shouldRasterize = YES會使視圖渲染內容被緩衝起來,下次繪製的時候可以直接顯示緩衝,當然要在視圖內容不改變的情況下。

除了上面非要作死的人外,大家還是採取預先產生圓角圖片,並緩衝起來這個方法才是比較好的手段。預先處理圓角圖片可以在幕後處理,處理完畢後緩衝起來,再在主線程顯示,這就避免了不必要的離屏渲染了。

另外也有在圖片上面覆蓋一個鏤空圓形圖片的方法可以實現圓形頭像效果,這個也是極為高效的方法。缺點就是對視圖的背景有要求,單色背景效果就最為理想。

總結

實現圓角cornerRadius要比mask高效很多。

Rasterize在大部分情況下極大減少GPU工作。在有空間的情況下,大部分情況下緩衝總能幫到你,不是嗎?

後台預先處理圖片也能很簡單幫上你很大的忙。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.