【问题标题】:CALayer Border strange issueCALayer边框奇怪问题
【发布时间】:2014-01-09 14:24:09
【问题描述】:

我正在向 CALayer 添加一个边框,但是有一些奇怪的行为,即我在应用的边框之后得到一个模糊的边框(见屏幕截图)

这是我的代码:

- (void)configureLabel {
self.hidden = YES;
self.textAlignment = NSTextAlignmentCenter;
self.font = kLightFontWithSize(12);
self.textColor = [UIColor whiteColor];
self.backgroundColor = [UIColor redColor];

self.clipsToBounds=YES;



CALayer * layer = self.layer;
layer.backgroundColor = [UIColor clearColor].CGColor;
layer.cornerRadius = self.frame.size.height / 2;
layer.borderWidth = 2.5f;
layer.borderColor = kTextFieldGreenColor.CGColor;
}

我的截图

谢谢

【问题讨论】:

    标签: ios objective-c border calayer


    【解决方案1】:

    看起来您的边框宽度为 2.5 磅。根据设备的不同,这可能会导致边缘模糊。

    比 2 的偶数倍,看看会发生什么。

    编辑

    我刚刚测试了我的假设,结果是错误的!这确实是一个奇怪的问题。我过去见过半像素对齐问题,但它们一直是具有奇数像素大小的视图的功能,因此系统必须在边缘上绘制半像素,或者有边框并没有以像素完美的方式排列。

    我的猜测是,当涉及到舍入视图和裁剪时,这是不精确的浮点数学与绘图系统中的不精确相结合的函数。

    然后,我唯一的建议是使用 2 视图方法,其中外部视图是 - 在您的情况下 - 背景颜色(或您想要的边框颜色),内部视图是标签。您可以使外部视图比内部视图略大,并使它们中的每一个都变圆。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,这对我有用

      myLayer.allowsEdgeAntialiasing = false

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-28
        • 1970-01-01
        • 2020-10-10
        • 1970-01-01
        • 2016-04-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多