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

来源:互联网 发布:龙虎榜数据 编辑:程序博客网 时间:2024/04/28 17:36

架构模式

 

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

 

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

@interface ViewController :UIViewController

 

- (IBAction)run:(id)sender;

- (IBAction)reset:(id)sender;

 

- (IBAction)rotat:(id)sender;

- (IBAction)deforma:(id)sender;

 

@property (weak,nonatomic) IBOutletUIButton *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 = [superinitWithCoder: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
原创粉丝点击