码迷,mamicode.com
首页 > 其他好文 > 详细

UI控件之UIView与动画

时间:2015-09-12 23:39:46      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

UIView:用来展示用户的界面,响应用户的操作(继承自UIResponder)

UIView的作用:绘图、动画、处理事件

UIView可以包含和管理子视图,并且决定子视图的位置大小

 

获取所有的子视图(数组)

NSArray *subViews= self.window.subviews;

 

将子视图放在某个子视图上面

[self.window insertSubview:greenView aboveSubview:yellowView];

 

将子视图放在某个子视图下面

[self.window insertSubview:greenView belowSubview:blueView];

 

将子视图放在某个下标位置处

[self.window insertSubview:greenView atIndex:2];

 

将某个子视图移到最上层

[self.window bringSubviewToFront:redView];

 

将某个子视图移到最底层

[self.window sendSubviewToBack:blueView];

 

设置是否允许父视图裁剪子视图(子视图比父视图大时)

blackView.clipsToBounds=YES;

 

设置是否允许在父视图尺寸变化时自动调整子视图的尺寸

blackView.autoresizesSubviews=YES;

 

设置子视图的调整模式,自动调整子视图的高度和宽度

topView.autoresizingMask=

UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;

 

获取父视图

UIView *parentView= subView.superview;

 

将topView从父视图中移除(删除视图topView)

[topView removeFromSuperview];

 

UIView动画有2种:

 属性动画:frame、bounds、center、backgroundColor、alpha、transform

 翻转动画:实现方式2种:iOS4.0之前:采用[]设置;iOS4.0之后:采用block实现

 

1.iOS4.0之前:采用[]设置

 

开始设置动画,第一个参数是动画名字,第二个参数是对象,一般为nil

[UIView beginAnimations:@"animation" context:nil];

 

设置动画的持续时间

[UIView setAnimationDuration:1];

 

设置动画开始的延迟时间

[UIView setAnimationDelay:0];

 

设置动画重复次数

[UIView setAnimationRepeatCount:1];

 

设置动画模式

[UIView setAnimationCurve:UIViewAnimationCurveLinear];

    UIViewAnimationCurveEaseIn:动画开始时效果缓慢

    UIViewAnimationCurveEaseOut:动画结束时效果缓慢

    UIViewAnimationCurveEaseInOut:动画开始和结束时效果缓慢

    UIViewAnimationCurveLinear:动画的平滑效果

    

设置代理,采用执行下面2个方法

[UIView setAnimationDelegate:self];

 

设置动画结束后执行的选择器方法

[UIView setAnimationDidStopSelector:@selector(buttonClick:)];

 

设置动画开始之前执行的选择器方法

[UIView setAnimationWillStartSelector:@selector(buttonClick:)];

 

设置图片视图的中心点

imageView.center=CGPointMake(300, 600);

 

设置图片视图的透明度

imageView.alpha=0.1;

 

设置缩放比例值

imageView.transform=CGAffineTransformMakeScale(1.5, 1.5);

 

在imageview原来的transform值基础上宽度高度放大为1.5被再赋给imageview,连续放大

imageView.transform=CGAffineTransformScale(imageView.transform, 1.5, 1.5);

 

设置旋转动画,每次旋转90度

imageView.transform=CGAffineTransformRotate(imageView.transform, M_PI_2);

 

动画开始

[UIView commitAnimations];

 

2.iOS4.0后用block实现属性动画

 

可以设置动画的持续时间和动画内容

[UIView animateWithDuration:1 animations:^{ }];

 

设置动画的持续时间、动画内容和动画结束后执行的语句

[UIView animateWithDuration:2 animations:^{} completion:^(BOOL finished) {}];

 

设置动画持续时间、开始之前的延迟时间、动画效果、动画内容、动画结束后执行的block

[UIView animateWithDuration:2 delay:1 options:UIViewAnimationOptionCurveLinear animations:^{} completion:^(BOOL finished) {}];

 

设置翻转效果,第一个参数是翻转方向,第二个参数是操作的对象,

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.window cache:YES];

 

设置翻转动画:第1个参数是操作的对象,第2个参数是持续时间,第3个参数是翻转的方向,第4个参数是动画结束后执行的语句

[UIView transitionWithView:self.window duration:2 options:UIViewAnimationOptionTransitionCurlDown animations:^{

        [self.window exchangeSubviewAtIndex:1 withSubviewAtIndex:2];

    } completion:^(BOOL finished) {}];

 

CALayer:层,可以用来渲染图片、制作动画,每创建一个view时,自动创建一个layer,不能重新创建和赋值,但是可以修改某些属性

 

设置阴影颜色

imageView.layer.shadowColor=[UIColor redColor].CGColor;

 

设置阴影的偏移量

imageView.layer.shadowOffset=CGSizeMake(10, 10);

 

设置阴影的透明度,1不透明,0完全透明

imageView.layer.shadowOpacity=0.8;

 

设置边框的颜色

imageView.layer.borderColor=[UIColor blueColor].CGColor;

 

设置边框的宽度

imageView.layer.borderWidth=5;

 

设置圆角半径

imageView.layer.cornerRadius=50;

 

设置是否允许子视图被裁剪

imageView.clipsToBounds=YES;

UI控件之UIView与动画

标签:

原文地址:http://www.cnblogs.com/PaulpauL/p/4803723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!