2014-07-24 165 views
1

我有一个UIView,我想要阴影和圆角。 问题是 - 阴影需要masksToBounds = NO,而圆角需要masksToBounds = YESUIView阴影和圆角

我找到的解决方案是有一个容器,它将有阴影,并添加我的UIView作为容器的子视图 - 并给它圆角。

This Works。我有阴影和圆角 - 但它不好。 阴影是矩形视图,我的图像有圆角。

Shadow and rounded corners

我怎样才能实现对圆角的影子?

+0

请参阅此链接http://stackoverflow.com/questions/1509547/uiview-with-rounded -corners – Yogendra

+0

我没有应用圆角的问题。问题是,圆角和阴影看起来不太好...... – YogevSitton

+0

使用掩盖角落的图像。它比任何编程解决方案都简单得多,编码速度更快,通常效果更好。 – Sulthan

回答

-1
// border radius 
[yourView.layer setCornerRadius:30.0f]; 

// border 
[yourView.layer setBorderColor:[UIColor blackColor].CGColor]; 
[yourView.layer setBorderWidth:1.5f]; 
yourView.layer.masksToBounds=YES; 

// drop shadow 
[yourView.layer setShadowColor:[UIColor lightGrayColor].CGColor]; 
[yourView.layer setShadowOpacity:0.8]; 
[yourView.layer setShadowRadius:3.0]; 
[yourView.layer setShadowOffset:CGSizeMake(2.0, 2.0)]; 

这可能对你有帮助。

+0

“masksToBounds”的价值应该是什么?是或否? – YogevSitton

+0

检查我编辑的答案 – Iphonenew

+0

是否需要边框?我使用的代码是 – YogevSitton

0

删除容器,其剪裁你的视图阴影。进口QuartzCore/QuartzCore.h。并尝试此代码视图

#import < QuartzCore/QuartzCore.h> 

... 

view.layer.cornerRadius = 5.0f; 
[view.layer setShadowColor:[UIColor redColor].CGColor]; 
[view.layer setShadowOpacity:0.7]; 
[view.layer setShadowRadius:5.0]; 
[view.layer setShadowOffset:CGSizeMake(2.0, 2.0)]; 

更多地了解maskToBound看到此链接

What UIView layer.masksToBounds is doing if set to YES?

+0

容器是带阴影的容器 - 它不能夹住阴影 – YogevSitton

+0

@godmoney那么,为什么你使用一个容器,如果你可以同时设置(阴影,角落)到你的主视图层? – Yogendra

+0

否 - 因为阴影需要maskToBounds = NO并且需要圆角maskToBounds = YES。 – YogevSitton