架构模式
(控制器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已经消失