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


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

原代碼語句:

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

效果圖:

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

后來找到了這張圖:

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

線寬是指從中心點出發到兩邊的距離,所以畫1個像素的線,我們只要把線寬設置成半個像素,就好了。

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


 

參考文章:

iOS 開發:繪制像素到屏幕

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM