【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像素线宽?

相关文章
相关标签/搜索