iOS UIView非同步繪製實現圓角的方案

2021-09-11 15:39:20 字數 919 閱讀 2354

包括我在內,大部分人看了理**章後,可能還是一知半解。想要看具體實現,能找到的都是yykit、asdk這種重量型的框架,頓感頭大。萌新只是簡單想優化一下圓角卡頓而已 o(╥﹏╥)o

ios9以後,uiimageview的圓角已經不需要我們操心了

之前很多人可能就已經知道,最簡單粗暴的辦法就是讓ui切一張圖蓋在上面。但這樣不同的圓角尺寸無法復用。本方案就是沿著這個思路自己畫一張這樣的圖。

僅適用於背景色為純色的場景

//

// uiview+zhradius.m

// zhdemos

//// created by xuzhenhao on 2018/7/11.

//#import "uiview+zhradius.h"

@implementation uiview (zhradius)

#pragma mark - public method

- (void)zh_addradius:(cgfloat)radius

corners:(uirectcorner)corners

bgcolor:(uicolor *)bgcolor);

}#pragma mark - private method

- (uiimageview *)_addcornerimageview

}if (!imageview)

return imageview;

}- (void)_addcornerradius:(cgfloat)radius corners:(uirectcorner)corners imageview:(uiimageview *)imageview bounds:(cgrect)bounds bgcolor:(uicolor *)bgcolor);

}@end

複製**

UIView的繪製原理 和 非同步繪製的實現

uiview 繪製原理 1 當我們呼叫 uiview setneedsdisplay 這個方法時,其實並沒有立即進行繪製工作,系統會立即呼叫calayer的同名方法,並且在當前layer上打上乙個標記,然後會在當前runloop將要結束的時候呼叫calayer display 這個方法,然後進入檢視...

iOS效能優化 非同步繪製

通讀下來可以總結一下對效能優化,在這裡也就是提高介面流暢度的宗旨只有一句話唯而已 把能非同步執行的都盡量非同步執行.yyfpslabel拿過來用了,檢測fps的變化情況 可以看到,在滑動很快的時候,fps最低已經達到了20幾.經過非同步繪製處理之後,可以看到無論如何滑動,fps一直保持在60.這是我...

實現非同步通訊

實現非同步通訊 1 定義 ajax的核心物件xmlhttprequest xmlhttprequest 是瀏覽器的xmlhttp元件的物件,通過該物件ajax可以像桌面應用程式一樣同伺服器進行資料層面的互動,不需要每次都進行整個頁面的重新整理。2 步驟 1 初始化物件並傳送xmlhttpreques...