首页 文章

UIView圆角和阴影在4条边上留下微小的错误像素

提问于
浏览
0

我想要一个圆角和阴影的UILabel(在边界上,而不是在文本上)

我几乎有这个工作,除了在所有4个边缘上的错误颜色的这个讨厌的几个像素(“舍入”的“余数”):

enter image description here

这是我的自定义可重用视图:

enter image description here

我已经将各种视图设置为不同的颜色,以便能够尝试查看哪个视图行为不端 .

顶级视图是我做投影的地方(backgroundColor = green):

view.layer.shadowColor = UIColor.blackColor().CGColor
    view.layer.shadowOpacity = 0.2
    view.layer.shadowOffset = CGSizeMake(3, 3);
    view.layer.shadowRadius = 3

请注意,讨厌的错误像素确实是绿色的 .

中间视图(“BackgroundView”)是我做圆角的地方(backgroundColor = red):

backgroundView.layer.cornerRadius = 3
    backgroundView.layer.masksToBounds = true

如果我这样做,这些边缘会从绿色变为白色 . 我不知道白色的来源:

view.backgroundColor = UIColor.greenColor().colorWithAlphaComponent(0.0)

如果我尝试一个不优雅的黑客并将顶级视图的backgroundColor设置为粉红色背景,那么它会像我的投影阴影一样混乱:

enter image description here

我是Swift和iOS的新手,我知道肯定的是,我正在做一些n00b'ish .

更新:我正在尝试将其设置为自定义可重用视图(xib swift文件) . 我发现使用这种方法,我必须使用多个视图,我不能完全正确,但如果我只是尝试在Main.storyboard中手动创建一次性视图(阴影圆角),它工作得很好(甚至只有1个视图!) . 这是为什么?

1 回答

  • 0

    您需要使用圆角矩形路径将 shadowPath 设置为视图的图层(CGPathCreateWithRoundedRect

相关问题