OC的frame、center、transform

来源:互联网 发布:无锡源石数据招聘骗局 编辑:程序博客网 时间:2024/05/22 03:41

//

//  ViewController.m

//  08085按钮操作复习

//

//  Created by weibiao on 15-8-8.

//  Copyright (c) 2015 weibiao. All rights reserved.

//


#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad {

    [superviewDidLoad];

    

}


- (void)didReceiveMemoryWarning {

    [superdidReceiveMemoryWarning];


}


- (IBAction)transform:(id)sender {


   /*

     第一种:以frame来进行变换

    //动画头部

    [UIView beginAnimations:nil context:nil];

    //设置动画时间

    [UIView setAnimationDuration:1.0];

    //不能对UIButtonframe直接操作

    CGRect tempRect = _header.frame;

    //senderid类型,不能用点语法,只能用getter语法

    switch ([sender tag]) {

        case 1:

            tempRect.origin.y-=kTranslation;

            break;

        case 2:

            tempRect.origin.x+=kTranslation;

            break;

        case 3:

            tempRect.origin.y+=kTranslation;

            break;

        case 4:

            tempRect.origin.x-=kTranslation;

            break;

            

        default:

            break;

    }

//    if ([sender tag] == 1){//进行上移

//    tempRect.origin.y  = tempRect.origin.y-kTranslation;

//    }

//    else if ([sender tag] == 2){

//        tempRect.origin.x = tempRect.origin.x - kTranslation;

//    }

//    else if ([sender tag] == 3){

//        tempRect.origin.y = tempRect.origin.y + kTranslation;

//    }

//    else if ([sender tag] == 4){

//        tempRect.origin.x = tempRect.origin.x + kTranslation;

//    }

    _header.frame = tempRect;

    [UIView commitAnimations];

     */

    

    

    /*第二种:以center属性来进行变换

     */

    //center属性是一个中心点,需要设置一个CGPoint对象

    CGPoint p =_header.center;//CGPoint是一个结构体,不需要用*

    //设置动画

    [UIViewbeginAnimations:nilcontext:nil];//动画头部,属于类方法

//    [UIView setAnimationDelay:2.0];//setAnimationDelay:方法是延迟动作执行时间

//    [UIView setAnimationBeginsFromCurrentState:NO];//作用待查

//    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];//作用待查

//    [UIView setAnimationDelegate:nil];//作用待查

    [UIViewsetAnimationDuration:1.0];

    [UIViewsetAnimationRepeatAutoreverses:YES];

    [UIViewsetAnimationRepeatCount:2];//一个动作重复执行多次

    [UIViewsetAnimationsEnabled:YES];//待查

    

    

   switch ([sender tag]) {

       case 1:

            p.y -=40;

           break;

            

       case 2:

            p.x +=40;

           break;

            

       case 3:

            p.y+=40;

           break;

            

       case 4:

            p.x-=40;

           break;

            

            

       default:

           break;

    }

   self.header.center = p;

    [UIViewcommitAnimations];

   return ;

}


- (IBAction)rotation:(id)sender {

//    [sender superview];获得父控件对象

//    NSLog(@"%@",[sender superview]);

//    self.header.transform = CGAffineTransformMakeRotation(M_PI_4);

    //设置动画

    [UIViewbeginAnimations:nilcontext:nil];

    [UIViewsetAnimationDuration:1.0];

   switch ([sender tag]) {

       case 1:

           self.header.transform =CGAffineTransformRotate(self.header.transform, -M_PI_4);

           break;

            

       case 2:

           self.header.transform =CGAffineTransformRotate(self.header.transform,M_PI_4);

            

       default:

           break;

    }

//    self.header.transform = CGAffineTransformRotate(self.header.transform, M_PI_4);

   if ([sender tag] ==3) {

    

    self.header.transform = CGAffineTransformScale(self.header.transform,0.8, 0.8);

    }

   else if ([sendertag] == 4) {

       self.header.transform =CGAffineTransformScale(self.header.transform,1.2, 1.2);

    }

    [UIViewcommitAnimations];

    

    

}

@end


0 0
原创粉丝点击