我想要一个圆角和阴影的UILabel(在边界上,而不是在文本上)
我几乎有这个工作,除了在所有4个边缘上的错误颜色的这个讨厌的几个像素(“舍入”的“余数”):
这是我的自定义可重用视图:
我已经将各种视图设置为不同的颜色,以便能够尝试查看哪个视图行为不端 .
顶级视图是我做投影的地方(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设置为粉红色背景,那么它会像我的投影阴影一样混乱:
我是Swift和iOS的新手,我知道肯定的是,我正在做一些n00b'ish .
更新:我正在尝试将其设置为自定义可重用视图(xib swift文件) . 我发现使用这种方法,我必须使用多个视图,我不能完全正确,但如果我只是尝试在Main.storyboard中手动创建一次性视图(阴影圆角),它工作得很好(甚至只有1个视图!) . 这是为什么?
1 回答
您需要使用圆角矩形路径将
shadowPath
设置为视图的图层(CGPathCreateWithRoundedRect)