UI:MVC设计模式

不是因为有些事情难以做到,我们才失去自信;而是因为我们失去了自信,有些事情才显得难以做到。自信的第一步就是去尝试。不是因为有希望才坚持,而是因为坚持才有了希望。坚持尝试,就有可能成功。加油!

Xcode的调试:参考 

计时器的使用:参考

 

//
//  AppDelegate.m
//
#import "AppDelegate.h"

@interface AppDelegate ()

@end

@implementation AppDelegate
- (void)dealloc{
    self.window = nil;
    [super dealloc];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelease];
    // Override point for customization after application launch.
    
    NSArray *colorArray=[NSArray arrayWithObjects:[UIColor redColor],[UIColor orangeColor],[UIColor yellowColor],[UIColor greenColor],[UIColor cyanColor],[UIColor blueColor],[UIColor purpleColor], nil];
    for (int i = 0; i < 7 ; i++) {
        _view = [[UIView alloc] initWithFrame:CGRectMake(0 + i *20, 0 + i *20,320 - 40 * i ,568 - i * 40)];;
        _view.tag = 101 + i;
        _view.backgroundColor = colorArray[i];
        //        _view.layer.borderWidth = 1;
        [self.window addSubview:_view];
        [_view release];
    }
    
    [NSTimer scheduledTimerWithTimeInterval:0.00002 target:self selector:@selector(fuc:) userInfo:nil repeats:YES];
    
    
    
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

- (void)fuc:(id)sender{
    for (int i = 0; i < 7; i++) {
        if (i < 6) {
            UIView *view = [self.window viewWithTag:101+i];
            UIView *view1 = [self.window viewWithTag:101+i+1];
            view.backgroundColor = view1.backgroundColor;
        }
        if (i == 6) {
            UIView *view2 = [self.window viewWithTag:101+i];
            UIView *view3 = [self.window viewWithTag:101+1];
            view2.backgroundColor = view3.backgroundColor;
        }
    }
}
@end
跑马灯效果实现

UIViewController是MVC设计模式的核⼼。其实就是一对.h .m文件。实现模块的独立化,不同的功能写在一个 UIViewController。

控制视图⼤⼩变换、布局视图、响应事件。 

检测以及处理内存警告(内存5S之后最大为80M,5S之前最大内存限制为30M)。 

检测以及处理屏幕旋转。 (手机处于横屏还是竖屏状态)

检测视图的切换。

 

MVC是⼀个框架级的设计模式。 (我们以后最常用的一个模式 C就是 controller控制   M就是数据(例如LTView里的数据源(存放在数组里))    V就是View视图)  M就好比饮水机,V就好比人口渴了,口渴了就要去饮水机取水,(如果饮水机没有水了,人就渴死了,这时就需要一个视图控制器 controller,controller可以指定去哪里取水,C管理 M 与 V)

M是Model,主要⽤于建⽴数据模型(即数据的结构) 

V是View,我们能看到的所有控件都是view,view主要的功能是展⽰数据。 

C是控制器,主要是控制M和V的通信。

 

做一个应用:先想到应用的需求,再考虑应用后期有可能要增加的模块(就是可扩展性)

总结视图控制器的作用:

是视图控制器的基础类,提供视图控制器的相关功能

     1.分担 AppDelegate 的任务。分担视图布局,和其他业务的逻辑处理

     2.视图控制器是个管理视图的类,用来管理视图,并不是一个视图

     3.自身携带了一个视图,这个视图的大小和屏幕的大小一样,我们称该视图(自身携带的视图)为根视图(self.view 来获得根视图)

     4.用于屏幕的旋转的检测

     5.用 didReceiveMemoryWarning 方法,能够检测内存警告,如果我们收到内存警告,我们就回收暂时不用的视图空间

     6.MVC模式,在 MVC 模式中 UIViewController 就是负责 数据(M) 与 V(视图)之间的通信 UIViewCoontroller (C)就是一个桥梁作用

 

视图控制器里面的几个方法:

 -(void)loadView

- (void)viewDidLoad

-(void)viewWillAppear:(BOOL)animated

-(void)viewDidAppear:(BOOL)animated

-(void)viewWillDisappear:(BOOL)animated

-(void)viewDidDisappear:(BOOL)animated

- (void)didReceiveMemoryWarning

 

快捷键的使用:

shrift + cmd + M 快捷键:让模拟器模拟处于内存警告状态(我们可以在测试的时候使用到该项功能)

推荐一些比较优秀的学习网站:

code4App、CocaChina、CSDN

 

原文地址:https://www.cnblogs.com/benpaobadaniu/p/4768876.html