在6p手机上UILable四条边框显示宽度不一致的bug

遇到一个bug,记录一下,一个Lable根据UI图设置了borderWidth为0.5

self.dateOROverdueLable.layer.borderWidth = 0.5;

self.dateOROverdueLable.layer.masksToBounds = YES;

然后就尴尬的发现在6s手机上Lable的四条边框粗细一样,没什么问题,可是一到同事的6puls手机上就会发现Lable的四条边框粗细不一致,两条宽,两条窄,后来想到0.5是指0.5个点,在6s手机上一个点是2x2个像素,在6plus上是3x3个像素,在6plus上0.5个点算出的像素个数是小数。

解决办法是在6p手机上Lable宽度改为1(我试过0.6或者1.0/[UIScreen mainScreen].scale * 2.0,但是效果不好)。

self.dateOROverdueLabel.layer.borderWidth = [UIScreen mainScreen].scale > 2.0 ? 1.0 : 0.5;

self.dateOROverdueLabel.layer.masksToBounds = YES;

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

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,141评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,572评论 6 30
  • 转载://www.greatytc.com/p/32fcadd12108 每个UIView有一个伙伴称为l...
    F麦子阅读 6,307评论 0 13
  • Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的,但实际上它是从一个叫做Laye...
    小猫仔阅读 3,802评论 1 4
  • 一、CAShapelayer 我们知道可以不使用图片情况下利用CGpath去构建任意形状的阴影。其实我们也可...
    小猫仔阅读 1,516评论 0 5