UIKit:查看阴影
上次我们讨论了如何使视图的角变圆。 今天,按照承诺,我将向您展示如何使用layer.shadowX
属性,以使视图看起来像Card,并获得其他炫酷效果。
让我们从简单而永不过时的Card View开始。 我知道你需要这个
myCard.layer.cornerRadius = 10
myCard.layer.shadowOpacity = 1
myCard.layer.shadowColor = UIColor(名称:“ Swift Orange”)!. cgColor
myCard.layer.shadowRadius = 4
myCard.layer.shadowOffset = CGSize(宽度:4,高度:4)
该代码是不言自明的:
- 我按照上
cornerRadius
UIKit Rounded Views中的描述设置了cornerRadius
属性。 - 我将阴影不透明度设置为从0到1的值,以将其应用于阴影颜色。
- 我设置阴影颜色。
- 我设置代表模糊半径的阴影半径。 如果您不愿意像我一样阅读,则只需要知道该值越高,图像就会越模糊。 如果您想学习,请单击此处。
- 最后,我设置偏移量,该偏移量是阴影相对于以点表示的图层的偏移量。
注意:要使阴影可见,请不要将layer
的属性masksToBounds
设置为true,否则它将被裁剪。
这还没有结束……还有一个阴影属性可供我们使用,以产生一些很酷的效果: shadowPath。 让我们看看如何制作一个像漂浮在设备屏幕上的视图。
让cardWidth = myCard.frame.width
让cardHeight = myCard.frame.height
让distanceFromCard = 15
myCard.layer.cornerRadius = cardWidth * 0.5
myCard.layer.shadowOpacity = 0.1
myCard.layer.shadowRadius = 2
myCard.layer.shadowColor = UIColor.black.cgColor
myCard.layer.shadowOffset = CGSize(宽度:0,高度:cardHeight)
设路径= CGPath(ellipseIn:CGRect(x:0,y:distanceFromCard,width:Int(cardWidth),height:Int(cardHeight * 0.1)),转换:nil)myCard.layer.shadowPath = path
与前面的示例相同,但是我没有使用默认的阴影形状,而是使用了椭圆形。 很简单的。
Github上的代码
Donald90 /快速药丸
SwiftPills – XCode项目,其中包含有关Medium的Swift Pills系列中介绍的每个概念的示例。
github.com
参考文献
- 卡拉耶
- 暗影之路
以前的帖子
- UIKit圆形视图