【IOS開發】如何畫1像素的線

最近在項目中畫了一根1像素的線,我是經過直接花一個可是經過PS查看,畫了不止1個像素。spa

原代碼語句:.net

label1 = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 33, 1)];
label2 = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 1, 33)];

效果圖:blog

在PS中打開發現,原來它繪製了2個像素。開發

後來找到了這張圖:get

才明白線寬和像素不是一個概念。it

線寬是指從中心點出發到兩邊的距離,因此畫1個像素的線,咱們只要把線寬設置成半個像素,就行了。class

在繪製線寬爲1的直線(3,1)到(3,5)時,其實是佔據了左右兩個像素各半個像素,而真正繪製時固然是以一個像素爲標準單位,因此淺藍色區域就會以相近的方式進行渲染。這也是寬爲1.0的線繪製並不許確的緣由。而當將繪製中心調整到半個像素上就不會有這個問題。渲染


 

參考文章:im

iOS 開發:繪製像素到屏幕d3

IOS CGContextSetLineWidth沒法設置1像素線寬?

相關文章
相關標籤/搜索