iOS基础 CALayer

CALayer

CALayer = Core Animation Layer ,UIView真正绘图的部分是由CALayer管理的。

  • 边框 通过设置CALayer的borderWidth和borderColor可以给视图添加边框效果,值得注意的是,这里设置的Color参数是QuartzCore框架下的CGColorRef类型的,而不是UIKit框架下的UIColor。但我们可以便捷地从UIColor对象获取CGColor属性转换后的CGColorRef值。
  • 投影 通过设置CALayer的shadowColor、shadowOffset、shadowOpacity、shadowRadius等参数可以实现阴影投影效果。
  • 圆角 通过设置CALayer的cornerRedius属性可以给控件添加圆角效果,设置完需要调用CALayer层的masksToBounds = true。
  • 渐变 CALayer和UIView一样可以嵌套多个子CALayer层,从而实现多种多样的效果。CAGradientLayer是一个CALayer的子类,通过设置CAGradientLayer的渐变色数组可以实现图层渐变色效果。
let view = UIView(frame: CGRect(x: 100, y: 100, width: 100, height: 100))
self.view.addSubview(view)

let gradientLayer = CAGradientLayer()
gradientLayer.frame = view.frame

let 前色 = UIColor.yellow.cgColor
let 中色 = UIColor.blue.cgColor
let 后色 = UIColor.red.cgColor

gradientLayer.colors = [前色,中色,后色]
//渐变色的起始位置
gradientLayer.startPoint = CGPoint(x: 0, y: 0)
//渐变色的结束位置
gradientLayer.endPoint = CGPoint(x: 1, y: 1)
//渐变色数组的分布情况
gradientLayer.locations = [0,0.3,1]

view.layer.addSublayer(gradientLayer)

运行结果:
在这里插入图片描述

UIViewController

视图控制器的生命周期

  • alloc 创建控制器对象,并分配内存空间
  • init 初始化
  • loadView 从故事感加载视图
  • viewDidLoad 视图载入完成,自定义操作
  • viewDidUnload 如果内存不够,一些没有处于显示状态的视图控制器就会收到内存不够的警告,然后自动释放自己拥有的视图,以达到释放内存的目的。
  • viewWillAppear 视图将要被显示在屏幕上,我们通常使用这个方法对即将显示的视图做进一步的处理,比如根据设备的不同对视图进行特异性处理。另外当从另一个视图返回当前视图,并不会重复调用viewDidLoad方法。如果需要对视图界面的信息进行刷新修改,就需要在viewWillAppear方法中实现。
  • viewDidAppear 视图已经显示在屏幕上,通常为了加快响应速度,我们可以先将界面显示出来,然后将一些长时间的耗时操作放在界面显示之后这个阶段进行。
  • viewWillLayoutSubviews 视图即将布局子视图
  • viewDidLayoutSubviews 视图完成布局子视图
  • viewWillDisappear 视图即将消失,此时还没有调用子控件的removeFromSuperview方法。
  • viewDidDisappear 视图已经消失,此时已经调用完子控件的removeFromSuperview方法。
  • dealloc 视图被销毁
    -didReceiveMemoryWarning 在内存不足的时候会调用,需要在该方法内作出一些释放暂时不需要的资源,及时释放不必要的内存占用。

猜你喜欢

转载自blog.csdn.net/kkkenty/article/details/124796434
今日推荐