iOS学习之UI初级————CGAffineTransform坐标系统变换以及UIView的属性动画

浅谈编者对CGAffineTransform坐标系统变换以及UIView的属性动画的认识和理解


坐标系统变换通过transform属性来改变

·CGAffineTransformScale //对视图比例缩放 

·CGAffineTransformRotate //对视图做变焦旋转 

·CGAffineTransformTranslate //对视图在原来的位置上做平移


以view对象举例

    //平移x方向上向右移动100,y方向上向上移动100

    view2.transform = CGAffineTransformMakeTranslation(-100, 100);

   //旋转M_PI是180度,此为顺时针旋转30度

    view2.transform = CGAffineTransformMakeRotation(M_PI / 6);

    //比例缩放,水平方向置为原来的二分之一,竖直方向上置为原来的两倍

    view2.transform = CGAffineTransformMakeScale(0.5, 2);


视图属性动画-动画属性

UIView类的很多属性都被设计为动画。动画的属性是指当属性从一个值变为另一个值的时候,可以半自动地支持动画。但是必须告诉UIKit希望执行什么类型的动画,动画一旦开始,Core Animation就会全权负责。UIView对象中支持动画的属性有如下几个:
frame : 改变视图的尺寸和位置 

bounds :改变视图的尺寸 

center :改变视图的中心位置 

transform :翻转或者放缩视图
alpha :改变视图的透明度 

backgroundColor :改变视图的背景颜色 

contentStetch :改变视图内容如何拉伸


UIView属性动画-代理设置

可以为动画分配一个委托,并通过该委托接受动画开始和结束的消息。当需要在动画 开始前和动画结束后立即执行其它任务时,可能就需要设置委托。

通过UIView调用setAnimationDelegate:方法来设置委托,并通过 setAnimationWillStartSelector:和setAnimationDidStopSelector:方法来指定接收 消息的选择器方法。消息处理方法的形式如下:
- (void)animationWillStart:(NSString *)animationID context:(void *)context; 

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber*)finished context:(void *)context;

animationID : 应用程序提供的字符串,用于标识一个动画块中的动画。
context :也是应用程序提供的对象,用于向委托对象传递额外的信息。 

setAnimationDidStopSelector:选择器方法还有一个参数,即一个布尔值,如果动画顺利完成,没有被其它动画取消或停止,则该值为YES。



UIView属性动画-动画参数配置

setAnimationStartDate:设置动画在commitAnimations方法返回之后 的发生日期。
setAnimationDelay:设置实际发生动画和commitAnimations方法返回 的时间点之间的间隔

setAnimationDuration:设置动画持续的秒数。 

setAnimationCurve:设置动画过程的相对速度,比如动画可能在启示阶段逐渐加速,而在结束阶段逐渐减速,或者整个过程都保持相同的速度
setAnimationRepeatCount:设置动画的重复次数。
setAnimationRepeatAutoreverses:指定动画在到达目标值时是否自动 反向播放。

所有支持动画的属性在动画块中发生的变化都会形成动画。如果希望让动画块中发生的某些变化不产生动画效果,可以通过setAnimationsEnabled:方法来暂时禁止动画,在完成修改后才重新激活动画。在调用setAnimationsEnabled: 方法并传入NO值之后,所有的改变都不会产生动画效果,直到用YES值再次调用这个方法或者提交整个动画块时,动画才会恢复。可以用areAnimationsEnabled方法来确定当前是否激活动画


此文是初学者编者对CGAffineTransform坐标系统变换以及UIView的属性动画的认识和理解,如有误请指正。

你可能感兴趣的:(iOS开发,UI初级)