2016-07-27 159 views
0

我想微小的错误像素(S)一个UILabel和阴影(上边界,而不是文本)UIView的圆角和圆角阴影叶4个边缘

我几乎都有这方面的工作,除在所有4个边缘的颜色不对这个讨厌的几个像素(以下简称“四舍五入”的“余”):

enter image description here

这是我自定义的可重复使用的观点:

enter image description here

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

顶层的看法是,我做了阴影(的backgroundColor =绿色):

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

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

中间视图(“BackgroundView”)是我做的圆角(的backgroundColor =红色):

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

如果我这样做,这些边缘由绿色变为白色。我不知道那里的白色是来自:

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

如果我尝试了unelegant黑客和设置顶层视图的的backgroundColor到粉红色的背景,然后它搅乱了我的阴影下角像这样:

enter image description here

我是新来的斯威夫特和iOS,我知道肯定,我做得n00b'ish。

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

+0

你有没有尝试设置backgroundView.backgroundColor透明,无论是在IB或代码? –

+0

我试过clearColor,并设置颜色本身的Alpha和层的alpha ..无济于事 – Jay

+0

请确保'view.opaque'为false。还要确保'backgroundView.clipsToBounds'为true,但我期望它是 – Doc

回答