mvc与视图控制器作用分 uiviewcontroller的生命周期

架构模式

 

(控制器Controller- 负责转发请求,对请求进行处理。当点击视图中按钮时将视图进行已编写好当算法进行一定运作。

 

(视图View - 界面设计人员进行图形界面设计。  

@interface ViewController :UIViewController

 

- (IBAction)run:(id)sender;

- (IBAction)reset:(id)sender;

 

- (IBAction)rotat:(id)sender;

- (IBAction)deforma:(id)sender;

 

@property (weak, nonatomic) IBOutlet UIButton *button;

@end

 

(模型Model - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)#import "ViewController.h"

#define kDate 20

 

@interface ViewController ()

 

@end

 

@implementationViewController

 

-(void)btn:(void(^)())abc{  //bolck将相同的代码框起来用

    [UIView beginAnimations:nil context:nil];//动画设置

    [UIView setAnimationDuration:2.0];

    abc();

   [UIView commitAnimations];

 

 

}

- (IBAction)reset:(id)sender {

    [self btn:^{

        _button.transform=CGAffineTransformIdentity;

    }];

}

 

#pragma mark 控制按钮走动(上下左右)

- (IBAction)run:(id)sender {

    [self btn:^{

        CGPoint tempCenter= _button.center;

  // CGRect frame=  _button.frame;

   switch ([sender tag]) {

          

//        case 1:frame.origin.x-=kDate;break;

//        case 2:frame.origin.y+=kDate;break;

//        case 3:frame.origin.x+=kDate;break;//当作转时在上会是的该图片变尺寸

//        case 5 :frame.origin.y-=kDate;break;

          

          

       case 1:tempCenter.x-=kDate;break;

       case 2:tempCenter.y+=kDate;break;

       case 3:tempCenter.x+=kDate;break;

       case 5:tempCenter.y-=kDate;break;

          

          

     default:

            break;

    }

            _button.center=tempCenter;

  

    }];

}

 

 

 

- (IBAction)rotat:(id)sender {

    [self btn:^{

    if ([sender tag]==4) {

        _button.transform=CGAffineTransformRotate(_button.transform, M_PI/8*-1);

    }else {_button.transform=CGAffineTransformRotate(_button.transform, M_PI/8*1);

       

        NSLog(@"%@",sender);

    }

    }];

}

 

- (IBAction)deforma:(id)sender {

    [self btn:^{

    CGFloat scale =[sender tag] == 7? 1.2: 0.8 ;

   _button.transform  =CGAffineTransformScale(_button.transform, scale, scale);

    }];

 

}

 

@end

 

 

 

 

 

 

 

 

 

 

 

 

 

 

#import "ViewController.h"

 

@interface ViewController ()

 

@end

 

@implementationViewController

 

- (id)initWithCoder:(NSCoder *)aDecoder{

    if (self = [super initWithCoder:aDecoder]){

        NSLog(@"initWithCoder Called");

    }

    return self;

}

- (void)viewDidLoad {

    [super viewDidLoad];

    NSLog(@"viewDidLoad Called");

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

   

}

- (void)viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];

    NSLog(@"viewWillAppear Called");

}

 

-(void)viewDidAppear:(BOOL)animated{

    [super viewDidAppear:animated];

    NSLog(@"viewDidAppear Called");

   

}

 

-(void)awakeFromNib{

    NSLog(@"awakeFromNib Called");

}

 

-(void)viewWillLayoutSubviews{

    NSLog(@"viewWillLayoutSubviews Called");

}

-(void)viewDidLayoutSubviews{

    NSLog(@"viewDidLayoutSubviews Called");

}

 

@end

 

 

1 init函数(init;initWithFrame;initWithCoder;)--初始化

2 awakeFromNib--在loadView之前的工作放在这里

3 viewDidLoad--注意,一个ViewController一个生命周期内这个函数只会调用一次

4 viewWillAppear -- view将要出现,每次View消失再出现都会调用

5 viewWillLayoutSubviews--简要对子试图进行布局

6 viewDidLayoutSubivews--完成对子试图布局

7 viewDidAppear--视图将要出现在屏幕上

8 viewWillDisappear--View将要消失

9viewDidDisappear--View已经消失

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值