Layers是Core Animation Framework的一部分。Core Animation Framework在iOS架構(gòu)的位置:
訪問CALayer
凡是繼承至UIView
的都將有一個屬性layer
來表示CALayer
柿菩。
myView.layer
初始化項目
- 新建CALayerDemo散罕,single View Application模板
- 新建一個
UIView
和一個UILabel
圓角
CALayer
的cornerRadius
屬性大小表示UIView
圓角處圓的半徑大小。類似于box.layer.cornerRadius = 20
善炫,就形成了圓角,數(shù)字越大圓角效果越大库继,當cornerRadius
等于box
半徑時箩艺,box
就會變成一個園。
陰影效果
box.layer.shadowOffset = CGSize(width: 5, height: 5)
box.layer.shadowOpacity = 0.7
box.layer.shadowRadius = 10
box.layer.shadowColor = UIColor.blue.cgColor
-
shadowOffset
表示陰影偏移大小宪萄,也就是陰影向box
的下放偏移5和向右方偏移5距離艺谆。 -
shadowOpacity
是陰影透明度 -
shadowRadius
是陰影涉及的半徑,并且這個半徑越大拜英,陰影的顏色深淺就會越來越小静汤。shadowRadius
與shadowOffset
是共同作用的
設(shè)置邊的寬度和顏色
box.layer.borderColor = UIColor.black.cgColor
box.layer.borderWidth = 3
展示圖片
box.layer.contents = UIImage(named: "tree.jpg")?.cgImage
box.layer.contentsGravity = kCAGravityResize
box.layer.masksToBounds = true
-
CALayer
的contents
屬性是open var contents: Any?
,可以設(shè)置為圖片 -
contentsGravity
設(shè)置成kCAGravityResize
,表示contents
的內(nèi)容會調(diào)整大小以適應layer虫给。如果設(shè)置成其他值可能出現(xiàn)大小不適的形象藤抡,比如kCAGravityBottomRight
,將是:
-
masksToBounds
為true表示按照layer的邊框范圍顯示內(nèi)容抹估;如果是false缠黍,將會是如下結(jié)果
背景顏色和透明度
box.layer.backgroundColor = UIColor.green.cgColor
box.layer.opacity = 0.5