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)

该代码是不言自明的:

  1. 我按照上cornerRadius UIKit Rounded Views中的描述设置了cornerRadius属性。
  2. 我将阴影不透明度设置为从0到1的值,以将其应用于阴影颜色。
  3. 我设置阴影颜色。
  4. 我设置代表模糊半径的阴影半径。 如果您不愿意像我一样阅读,则只需要知道该值越高,图像就会越模糊。 如果您想学习,请单击此处。
  5. 最后,我设置偏移量,该偏移量是阴影相对于以点表示的图层的偏移量。

注意:要使阴影可见,请不要将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


参考文献

  • 卡拉耶
  • 暗影之路

以前的帖子

  1. UIKit圆形视图