UIView常见动画的属性分析

实现动画的三步曲

  • 设置视图的动画初始状态
  • 添加视图的动画相应属性
  • 设置视图的动画最终状态

UIView常见动画的属性分析

UIView常见的属性有哪些?

位置属性 frame bounds center

frame bounds center都是描述UIView的位置属性,不同的是frame可以对x y width height四个属性进行操作,framex y是相对于父控件的原点来计算的,而bounds一般只能对width height进行操作,它的x y 坐标只相对于自身而言,center描述的是x y信息,即UIView的中心位置。

  • swift版
public struct CGRect {

    public var origin: CGPoint

    public var size: CGSize

    public init()

    public init(origin: CGPoint, size: CGSize)
}
  • OC版
/* Rectangles. */

struct CGRect {
    CGPoint origin;
    CGSize size;
};
typedef struct CG_BOXABLE CGRect CGRect;

再来看三者的数据类型。frameCGRect类型,它是一个结构体,在结构体中包含origin,size两个属性,其中origin描述UIView的x,y坐标起点位置信息。size描述UIView的widthheight宽高信息,我们再来看看originCGPointsizeCGSize 又是什么?

  • swift版
/* Points. */
public struct CGPoint {
    public var x: CGFloat

    public var y: CGFloat

    public init()

    public init(x: CGFloat, y: CGFloat)
}
/* Sizes. */

public struct CGSize {

    public var width: CGFloat

    public var height: CGFloat

    public init()

    public init(width: CGFloat, height: CGFloat)
}
  • OC版
/* Points. */
struct
CGPoint {
    CGFloat x;
    CGFloat y;
};
typedef struct CG_BOXABLE CGPoint CGPoint;
/* Sizes. */
struct CGSize {
    CGFloat width;
    CGFloat height;
};
typedef struct CG_BOXABLE CGSize CGSize;

CGPoint中包含了UIViewx,y坐标,而CGSize中包含了UIViewwidt,height信息。通过对frame中的数据类型进行追本溯源,可以得到以下结论:

CGRecct分别对应x坐标,y坐标、widthheight四个属性,这四个属性表明当前UI在它的父视图上的位置
可能通过x,y坐标修改UIView的移动位置,还可以修改width,height来修改UIView的拉伸、收缩效果,对于bounds属性使用最多的还是width,height属必,center则经常使用x,y坐标属性。

透明属性:alpha (透明属性,范围0-1,浮点型)

UIViewalpha属性也可以作动画效果,当alpha值为0时,表明视图已经隐藏,当alpha值为1时,视图显示。结合这一属性可以通过修改alpha值在动画开始、结束时的值可以实现淡入淡出效果。

Layer属性:圆角渐变,边框颜色,阴影,3D等高级动画效果

UIView是视图显示的容器,负责内容显示和事件响应。每个视图都有一个layer图层,在这个图层中承栽的是视图的内容。所以结合layer可以实现很多高级效果。当然除了这些之外,视图还有其他属性。


   转载规则


《UIView常见动画的属性分析》 志鹏 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
UIView显示层初级动画 UIView显示层初级动画
显示层初级动画属性预览extension UIView { open var frame: CGRect open var bounds: CGRect open var center: CGPoint
2018-09-24 志鹏
下一篇 
类图 类图
类图类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。 类类封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总
2018-08-26 志鹏
  目录