属性: alpha 是一个CGFloat 类型,1.0 表示不透明,0.0表示全透明。
//渐变,alpha属性
-(void)changeopacity{
//现将初始状态改变为全透明
_redView.alpha = 1;
//使用block动画
[UIView animateWithDuration:1 animations:^{
//具体属性的变化,就在这里做
self.redView.alpha = 0.0;
}];
}
我们创建了一个视图 _redview 然后我们去改变这个视图的透明度。在这里我们我们用到了UIView的一个方法 [UIView animateWithDuration:(NSTimeInterval) animations:^(void)animations],第一个参数表示这个动画完成需要多少时间,也就是动画的持续时间,第二个参数是一个 block ,表示这个动画实际上是用来干什么的,在这里我们让这个视图的透明度变为0。因此,具体体现出来就是这个红色的视图在一秒的时间内变透明。
1.通过改变当前视图的坐标我们可以移动视图 下面是通过改变视图中心点的坐标来实现的移动。
//移动 center属性
[UIView animateWithDuration:2 animations:^{
self.redView.center = CGPointMake(self.redView.center.x, self.redView.center.y-100);
}];
红色视图在两秒内向上移动了100个像素。
2.通过改变视图的fram也可以实现移动
[UIView animateWithDuration:1 animations:^{
_redView.frame = CGRectMake(150, 200, 200, 200);
}];
3.通过视图的transform属性来更改视图的位置
[UIView animateWithDuration:1 animations:^{
//利用CGAffin来移动
self.redView.transform = CGAffineTransformMakeTranslation(50, 100);//只能做一次
self.redView.transform = CGAffineTransformTranslate(self.redView.transform, 50, 100);//可以进行多次操作
}];
通过CGAffineTransformMakeTranslation和CGAffineTransformTranslate方法实现移动。前者只能执行一次,有两个参数,都是CGFloat类型,表示相对于当前的视图的x,y的坐标的偏移,因此只能移动一次。后者可以多次执行,有三个参数,第一个参数是CGAffineTransform类型,表示是一个视图的transform,后面的两个参数是相对于第一个参数(一个视图)的偏移量,这样就可以实现多次操作了,因为每次移动都是相对于前一个视图的偏移。
1.通过改变视图的frame属性也可以改变视图的大小
[UIView animateWithDuration:1 animations:^{
_redView.frame = CGRectMake(150, 200, 200, 200);
}];
2.通过使用视图的transform属性来改变大小
[UIView animateWithDuration:1 animations:^{
//利用CGAffin来扩大
self.redView.transform = CGAffineTransformMakeScale(2, 2);//一次放大
self.redView.transform = CGAffineTransformScale(self.redView.transform, 2, 2);//多次放大
}];
同样transform的改变大小的方法也有两套,有Make这个单词的是只做一次的,有两个参数,是相对于原来视图的需要放大的倍数。另一个是可以执行多次的。
//利用CGAffin来旋转
self.redView.transform = CGAffineTransformMakeRotation(M_2_PI);//旋转90度,一次
直接利用transform属相的CGAffineTransformMakeRotation方法来进行旋转,参数是需要旋转的度数,是一个弧度制,这里表示的是π/2。这个也有一直旋转的方法,不过这个也不能让它一直旋转,想要它一直保持旋转我们需要设置一个定时器。
因篇幅问题不能全部显示,请点此查看更多更全内容