UIView控件的一些常用方法和简单动画设置

来源:互联网 发布:南京魔苹网络怎么样 编辑:程序博客网 时间:2024/05/18 01:25

终于步入了ios开发的阶段,首先学习的就是各种UI控件。

自我感觉在界面上的操作与命令行操作相比,是增加了不少趣味的。

下面介绍一些刚刚学到的UIView控件的一些常用方法和简单动画设置。


首先,这是我的界面:

对其中的矩形进行一系列的动作:放大、缩小、旋转、平移、动画等。

说明一下,动画的设置针对控件的frame、bounds、center、transform、alpha、backgroundcolor、contentstetch属性。




主要代码如下:

#import "ViewController.h"


@interface ViewController ()

@property (weaknonatomicIBOutletUIView *transformView;

- (IBAction)scale:(UIButton *)sender;

- (IBAction)rotate:(UIButton *)sender;

- (IBAction)moveAction:(UIButton *)sender;

- (IBAction)backAction:(UIButton *)sender;

- (IBAction)rotateAnimation:(id)sender;

- (IBAction)scaleAnimation:(id)sender;

- (IBAction)alphaAnimation:(id)sender;



@end


@implementation ViewController


- (void)viewDidLoad {

    [superviewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

}


- (void)didReceiveMemoryWarning {

    [superdidReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


- (IBAction)scale:(UIButton *)sender {

    

    //将所点击的按钮的tag值取出来

   NSInteger tag = sender.tag;

    //所需改变的视图(即transformView视图)的原始的transform

    CGAffineTransform transform =self.transformView.transform;

    

   if (tag == 1) {

       //放大

       CGAffineTransform t1 = CGAffineTransformScale(transform, 1.21.2);

        self.transformView.transform = t1;

    }

    

   else if (tag ==2){

       //缩小

       CGAffineTransform t2 = CGAffineTransformScale(transform, 0.70.7);

        self.transformView.transform = t2;

    }

    

}


- (IBAction)rotate:(UIButton *)sender {

    

    CGAffineTransform transform =self.transformView.transform;

    //顺时针旋转(每次旋转30度)

   CGAffineTransform t = CGAffineTransformRotate(transform, M_PI/6);

    self.transformView.transform = t;

}


- (IBAction)moveAction:(UIButton *)sender {

    CGAffineTransform transfrom =self.transformView.transform;

    CGAffineTransform t =CGAffineTransformTranslate(transfrom, 10,0)

    ;

    self.transformView.transform = t;

}


- (IBAction)rotateAnimation:(id)sender {

    //动画开始

    [UIViewbeginAnimations:@"rotate"context:nil];

    

    //动画持续时间

    [UIViewsetAnimationDuration:1.0];

    

    CGAffineTransform transform =self.transformView.transform;

    

   CGAffineTransform t = CGAffineTransformRotate(transform, M_PI/3);

    

    self.transformView.transform = t;

    

    [UIViewcommitAnimations];//动画结束

}


- (IBAction)scaleAnimation:(id)sender {

    

    [UIViewbeginAnimations:@"scale"context:nil];

    

    [UIViewsetAnimationDuration:0.3];

    CGRect frame =self.transformView.frame;

    

    frame.size.height =20;

    frame.size.width =10;

    frame.origin.x =200;

    frame.origin.y =300;

    

    self.transformView.frame = frame;

    

    [UIViewcommitAnimations];

}


- (IBAction)alphaAnimation:(id)sender {

    

    [UIViewbeginAnimations:@"alpha"context:nil];

    

    //动画持续时间

    [UIViewsetAnimationDuration:0.6];

    //动画重复次数

    [UIViewsetAnimationRepeatCount:5];

    //动画执行内容:将透明度变为0

    self.transformView.alpha =0;

    

    [UIViewcommitAnimations];

}


- (IBAction)backAction:(UIButton *)sender {

    //CGAffineTransformIdentity: 还原到最原始的transform状态

    self.transformView.alpha =1;

    self.transformView.transform =CGAffineTransformIdentity;

}


@end






0 0
原创粉丝点击