iOS12-Swift5-Xcode10-如何動態的(用程式碼)給view新增陰影shadow

Lebus發表於2019-05-03

眾所周知,在storyboard的右邊屬性欄上沒有shadow屬性,所以一般情況下需要動態建立陰影,也就是用程式碼生成。

在視訊教程中也講過,用程式碼建立某個東西(比如某個view)的屬性時,直接用view.xxx=xxx就行,如果view點後面沒有程式碼提示,則此屬性一般在view的layer中。 shadow屬性就是這種情況。

shadow一共有五個相關屬性:

  view.layer.shadowOpacity = 0.5//預設0--完全透明
  view.layer.shadowColor = UIColor.black.cgColor //預設黑色。這裡也可以用Color Literal雙擊選顏色
  view.layer.shadowRadius = 10 //預設是3
  view.layer.shadowOffset = CGSize(width: 0.0, height: -3.0)//預設是(0.0, -3.0)
  view.layer.shadowPath = UIBezierPath(rect: view.bounds).cgPath//預設nil,系統自動配置
複製程式碼

除了shadowOpacity之外,其餘屬性都有看得見的預設值。

所以實現一個最基本的陰影,我們只需要給shadowOpacity設定一個大於0小於1的值就可以了。

下面簡單說一下各個屬性的作用:

shadowOpacity:

陰影透明度,取值0-1,1是完全不透明。

shadowColor:

陰影顏色,CGColor型別,不贅述。

shadowRadius:

陰影寬度,也就是陰影的大小,單位是point。

shadowOffset:

陰影離view的距離(偏移量),CGSize型別,分x軸和y軸偏移,主要用來營造3D效果。

shadowPath:

陰影形狀。如果不設這項,系統會自動根據view的大小和位置描繪view的陰影,這樣需要消耗非常多的資源,所以一定要指定一下(一般是這個view的bounds)。  

廣告時間:小弟的iOS12零基礎視訊教程(每章皆可試聽):

m.study.163.com/provider/48…

相關文章