1像素线怎么画?

最近被问到“1像素的线怎么画?”,记得当时我的简单回答是“高度给0.5啊,代码里面设置是可以的,IB里面设置好像也行”。实际上,记得曾经确实这么干过,好像出来的线确实比1pt的要细一些。当然,那个时候6Plus这种大屏手机还没有出来。

最近百度了一下,还真有这样的文章。
IOS的一像素线

下面这段代码,相对比较好,考虑到了屏幕分辨率

- (void)viewDidLoad {
    [superviewDidLoad];

    CGFloat floatsortaPixel = 1.0 / [UIScreenmainScreen].scale;
    UIView *line = [[UIViewalloc] initWithFrame:CGRectMake(0, 20, 320, sortaPixel)];
    line.backgroundColor=[UIColor blackColor];
    [self.view addSubview:line]; 
}

其实这个问题也可以扩展一下,比如“35像素的矩形怎么设置?”以前,我们的做法就是做UI的工作:“为什么是奇数呢?iOS要求偶数的,34或者36都行啊,我程序里面对应的是17或者18点(pt),你这个会带来小数,不知道系统会不会起作用....”

更方便一点,做下面一个宏,作为替换,就方便一点,不论是奇数还是偶数的像素都可以拿到

#define PIX(x)  ((CGFloat)(x) / [UIScreenmainScreen].scale)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容