初见IOS的UI之:UI控件的属性frame bounds center 和transform

本文详细介绍了iOS开发中视图的frame、bounds和center属性的作用,以及如何使用这些属性实现首尾式动画效果。此外,还深入探讨了transform属性在实现控件平移、缩放和旋转中的应用,并对比了其与frame、bounds、center属性的区别。

这些属性,内部都是结构体:CGRect CGPoint CGFloat

背景知识:所有的控件都是view的子类,屏幕就是一个大的view;每个view都有个viewController,它是view的管家,每个view对应着一个viewController,来管理view。

  1.  frame & bounds & center

    ========================================

    1> frame可以修改对象的位置和尺寸

    2> bounds可以修改对象的尺寸

    3> center可以修改对象的位置,是对象的中心的x,y坐标

 

  

  2.首尾式动画

  ========================================

  // beginAnimations表示此后的代码要参与到动画中

  [UIView beginAnimations:nil context:nil];

  // setAnimationDuration用来指定动画持续时间

  [UIView setAnimationDuration:2.0];

  self.headImageView.bounds = rect;

 

  // commitAnimations,将beginAnimation之后的所有动画提交并生成动画

  [UIView commitAnimations];

 

  3. transform属性

  ========================================

  在OC中,通过transform属性可以修改对象的平移、缩放比例和旋转角度

 

  常用的创建transform结构体方法分两大类

 

  1> 创建基于控件初始位置的形变

  CGAffineTransformMakeTranslation

  CGAffineTransformMakeScale

  CGAffineTransformMakeRotation

 

  2> 创建基于transform参数的形变,返回的时当前的坐标值,不需要一直计算,这个比较常用

  所以会多一个参数:就是当前的控件对象;

  CGAffineTransformTranslate

  CGAffineTransformScale

  CGAffineTransformRotate

 

  补充:

  在OC中,所有跟角度相关的数值,都是弧度值,180° = M_PI

  正数表示顺时针旋转

  负数表示逆时针旋转

  提示:由于transform属性可以基于控件的上一次的状态进行叠加形变,例如,先旋转再平移

  因此在实际动画开发中,当涉及位置、尺寸形变效果时,大多修改控件的transform属性,

  而不是frameboundscenter  

转载于:https://www.cnblogs.com/cxbblog/p/3742093.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值