Swift 设置阴影

简介: 阴影的设置是通过layer的shadow设置的,其中offset为阴影的偏移量,探索下offset是如何影响阴影显示的

阴影的设置是通过layer的shadow设置的,其中offset为阴影的偏移量,探索下offset是如何影响阴影显示的


定义6个按钮,分别表示width 和 height 从 5.0 至 -5.0的变化过程

整体效果如下:


image.png

阴影显示



根据效果图,可以得出如下结论


  • 当width 为正数时,shadow向右偏移,为负数时,shadow向左偏移
  • 当height为正数时,shadow向下偏移,为负数时,shadow向上偏移


阴影的设置代码如下


    fileprivate func setupShader(_ w: CGFloat, _ h: CGFloat, _ btn: UIButton){
        //设置阴影路径--避免离屏渲染
        let path = UIBezierPath(rect: btn.bounds)
        btn.layer.shadowPath = path.cgPath
        //设置阴影颜色
        btn.layer.shadowColor = UIColor.black.cgColor
        //设置透明度
        btn.layer.shadowOpacity = 0.5
        //设置阴影半径
        btn.layer.shadowRadius = 5.0
        //设置阴影偏移量
        btn.layer.shadowOffset = CGSize(width: w, height: h)
    }


相关文章
|
Swift
Swift之设置UItextField的占位文字颜色颜色
Swift之设置UItextField的占位文字颜色颜色
268 0
Swift之设置UItextField的占位文字颜色颜色
|
Swift
swift导航栏的设置
swift导航栏的设置
583 0
swift导航栏的设置
|
Swift
swift协议的设置和实现
swift协议的设置和实现
258 0
swift4.0 代码设置阴影
有的时候,项目中会用到阴影的效果,增加立体感。我们可以让设计师给出切图,用图片填充。我们还可以使用几句代码来实现简单的阴影效果。 实现效果图展示一: image.
1494 0
swift 为UIView设置投影效果
//视频标题投影 videoBackBtn.layer.shadowOffset = CGSizeMake(3,3) videoBackBtn.
1029 0
|
Swift
swift UI专项训练22 设置网址和载入指示器
  上一话中我们对网络浏览器的UI做了初步的设置,那么这一话中,我们来设置网址和载入指示器。
773 0
|
Swift
swift UI专项训练23 设置委托和键盘返回
      前几话中我们搞定了布局,这一话我们首先要把引用全部加上,就是连线到控制器中 UIViewController { @IBOutlet weak var textField1: UITextField! @IBOutlet weak var web1: UIWebView! 然后就是代理,首先来看一下我们手机场景界面上的三个按钮: 第一个按钮是控制器本身,第二个按钮是这个界面的第一反应者,我们这个界面的第一反应者是网址这个框,第三个按钮是退出。
769 0
|
5月前
|
Unix 调度 Swift
苹果iOS新手开发之Swift 中获取时间戳有哪些方式?
在Swift中获取时间戳有四种常见方式:1) 使用`Date`对象获取秒级或毫秒级时间戳;2) 通过`CFAbsoluteTimeGetCurrent`获取Core Foundation的秒数,需转换为Unix时间戳;3) 使用`DispatchTime.now()`获取纳秒级精度的调度时间点;4) `ProcessInfo`提供设备启动后的秒数,不表示绝对时间。不同方法适用于不同的精度和场景需求。
185 3
|
1月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
33 2