阴影可以让使用者介面变得更加美观,更有质感,更有层次。因此学会使用阴影已经变成工程师必学的一项技术。
所有子类UIView,都可以看到layer里面的属性,我们可以在程序码中直接套用阴影效果属性。我们来看看可以设定参数:
接下来带大家玩转阴影
所谓的平民式阴影就是什麽属性都不调,一昧地用预设。
vw.layer.shadowOpacity = 1
浮岛式阴影是使视图看起来接近甚至接触曲面的一种,因此阴影直接存在於视图下方,而不是围绕视图。
vw.layer.shadowPath = UIBezierPath(rect: vw.bounds).cgPath
vw.layer.shadowRadius = 5
vw.layer.shadowOffset = .zero
vw.layer.shadowOpacity = 1
let shadowSize: CGFloat = 20
let contactRect = CGRect(x: -shadowSize, y: vw.frame.height - (shadowSize * 0.4), width: vw.frame.width + shadowSize * 2, height: shadowSize)
vw.layer.shadowPath = UIBezierPath(ovalIn: contactRect).cgPath
vw.layer.shadowRadius = 5
vw.layer.shadowOpacity = 0.4
站立式阴影,可以让视就像站立起来。看起来画面更生动了。
没有轮回眼,也可以使用地爆天星阴影,让视图飞到天上去,留下美美的阴影。
let shadowSize: CGFloat = 10
let shadowDistance: CGFloat = 40
let contactRect = CGRect(x: shadowSize, y: vw.frame.height - (shadowSize * 0.4) + shadowDistance, width: vw.frame.width - shadowSize * 2, height: shadowSize)
vw.layer.shadowPath = UIBezierPath(ovalIn: contactRect).cgPath
vw.layer.shadowRadius = 5
vw.layer.shadowOpacity = 0.4
let shadowWidth: CGFloat = 1.2
let shadowHeight: CGFloat = 0.5
let shadowOffsetX: CGFloat = -50
let shadowRadius: CGFloat = 5
let shadowPath = UIBezierPath()
shadowPath.move(to: CGPoint(x: shadowRadius / 2, y: vw.frame.height - shadowRadius / 2))
shadowPath.addLine(to: CGPoint(x: vw.frame.width, y: vw.frame.height - shadowRadius / 2))
shadowPath.addLine(to: CGPoint(x: vw.frame.width * shadowWidth + shadowOffsetX, y: vw.frame.height + (vw.frame.height * shadowHeight)))
shadowPath.addLine(to: CGPoint(x: vw.frame.width * -(shadowWidth - 1) + shadowOffsetX, y: vw.frame.height + (vw.frame.height * shadowHeight)))
vw.layer.shadowPath = shadowPath.cgPath
vw.layer.shadowRadius = shadowRadius
vw.layer.shadowOffset = .zero
vw.layer.shadowOpacity = 0.2
>>: Day-28 了解 Namespace 与 Rbac
在这30天的文章中分享藉由在工作上学习资料库管理相关的一些心得笔记与一些经验分享和操作纪录,希望能...
前言 说起HTML, 大家觉得它如何? 相比起JavaScript, HTML不是什麽program...
昨天我们介绍了Python跟Vagrant这两个东东是干啥的 以及这两个东东如何安装 今天我们会把剩...
一、前言 Linux 上面多半有 Firefox,为什麽我还大费周章安装 Google Chrome...
各位夥伴们大家好,今天是我们进入API阶段的第一天,在撰写API的逻辑之前,我们需要先到user\m...