2014-07-24 218 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