• 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

     

  • 相关阅读:
    使用SecureCRTP 连接生产环境的web服务器和数据库服务器
    CSS之浮动
    CSS之定位
    Session的过期时间如何计算?
    浏览器关闭后,Session会话结束了么?
    Spring事务注意点
    Lucene 的索引文件锁原理
    Mysql数据库的触发程序
    记一次jar包冲突
    关于jvm的OutOfMemory:PermGen space异常的解决
  • 原文地址:https://www.cnblogs.com/benpaobadaniu/p/4768876.html
Copyright © 2020-2023  润新知