2014-04-18 41 views
27

我必須在UI界面的右側和底部放下一個陰影。我在界面構建器中這樣做。但是我看到陰影降到了頂部。嘗試了不同的尺寸。但是couldn沒辦法。將影子投影到右側和底部的UIUI

layer.masksToBound=No 
layer.shadowOpacity=0.15 
layer.shadowRadius=2 
layer.shadowOffSet={10,-10} //Values being set in Interfacebuilder. 

這還是會在頂部放下陰影。我應該怎麼做才能看到底部的視圖。

+0

運行時@ walle84是corrent答案。 – Joker

回答

90

嘗試下面的代碼,它可以幫助你

myView.layer.shadowColor = [UIColor purpleColor].CGColor; 
    myView.layer.shadowOffset = CGSizeMake(5, 5); 
    myView.layer.shadowOpacity = 1; 
    myView.layer.shadowRadius = 1.0; 
    myView.layer.maskToBounds = NO; 

我測試此代碼,它的工作和輸出是:

enter image description here

+2

你能告訴我如何只在視圖的頂部添加陰影。 –

+4

而不是'myView.layer.shadowOffset = CGSizeMake(5,5);'do' myView.layer.shadowOffset = CGSizeMake(0,5);' –

+0

inimageview我不能添加這個陰影。我編寫就像你寫的一樣。 –

0

我認爲你的陰影偏移是不正確的。它應該是{10,10},如:

[layer setShadowOffset:CGSizeMake(10 , 10) ]; 
+0

我甚至嘗試過。但它只落在頂端 – Honey

+0

使用代碼來創建陰影。檢查這[鏈接](http://nachbaur.com/blog/fun-shadow-effects-using-custom-calayer-shadowpaths) –

+0

@GauravSingh我用這個繪製陰影的tableview單元格,但滾動後它回到頂部。 – user3306145

6

嗨我已經使用下面的代碼,它會爲您提供你想要的影子。

UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:_viewShadow.bounds]; 
_viewShadow.layer.masksToBounds = NO; 
_viewShadow.layer.shadowColor = [UIColor blackColor].CGColor; 
_viewShadow.layer.shadowOffset = CGSizeMake(10.0f, 5.0f); /*Change value of X n Y as per your need of shadow to appear to like right bottom or left bottom or so on*/ 
_viewShadow.layer.shadowOpacity = 0.5f; 
_viewShadow.layer.shadowPath = shadowPath.CGPath; 

另外masksToBounds是小鬼因爲它禁用比視圖邊界進一步延伸子層的削波。如果你把它是YES,那麼你不會看到陰影,因爲它剪輯子圖層,否則它不允許擴展圖層。

+1

感謝您對'masksToBounds'的說明,我錯過了這一個。 –

1

In Swift 3CGSizeMake不再存在。它已更改爲CGSize(width: 20, height: 10)。所以shadowOffset可以設置這樣的斯威夫特3

myView.layer.shadowOffset = CGSize(width: 20, height: 10) 
0

我發現,這些值給一個不錯的結果:

myView.layer.shadowColor = UIColor.black.cgColor 
myView.layer.shadowOpacity = 0.25 
myView.layer.shadowRadius = 3 
myView.layer.shadowOffset = CGSize(width: 1, height: 1) // shadow on the bottom right 

enter image description here