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 = ; i < ; i++) {
_view = [[UIView alloc] initWithFrame:CGRectMake( + i *, + i *, - * i , - i * )];;
_view.tag = + 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 = ; i < ; i++) {
if (i < ) {
UIView *view = [self.window viewWithTag:+i];
UIView *view1 = [self.window viewWithTag:+i+];
view.backgroundColor = view1.backgroundColor;
}
if (i == ) {
UIView *view2 = [self.window viewWithTag:+i];
UIView *view3 = [self.window viewWithTag:+];
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
UI:MVC设计模式的更多相关文章
- MVC设计模式(持续更新中)
MVC设计模式--->英文全称为: model(模型) View (视图) Controller(控制) MVC是一种设计思想.这种思想强调实现模型(Model).视图(View)和控制 ...
- iOS中MVC设计模式
在组织大型项目的代码文件时,我们常用MVC的思想.MVC的概念讲起来非常简单,就和对象(object)一样.但是理解和应用起来却非常困难.今天我们就简单总结一下MVC设计理念. MVC(Model V ...
- javacript中的mvc设计模式
以下内容为原创翻译,翻译不对的地方还请原谅,凑合着看吧. 原文网址是: 来源:http://www.alexatnet.com/articles/model-view-controller-mvc-j ...
- ASP.NET下MVC设计模式的实现
[转载]MVC架构在Asp.net中的应用和实现 转载自:http://www.cnblogs.com/baiye7223725/archive/2007/06/07/775390.aspx 摘要:本 ...
- Android为TV端助力 转载:android MVC设计模式
Controller控制器 import android.app.Dialog; import android.app.ProgressDialog; import android.os.Bundle ...
- ASP.NET Core MVC 设计模式 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core MVC 设计模式 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core MVC 设计模式 上一章节中,我们提到 ASP.NET Co ...
- AngularJS_01之基础概述、设计原则及MVC设计模式
1.AngularJS: 开源的JS框架,用来开发单一页面应用,以及数据操作频繁的场景:2.设计原则: ①YAGNI原则:You Aren't Gonna Need It! 不要写不需要的代码! ②K ...
- 谈谈JAVA工程狮面试中经常遇到的面试题目------什么是MVC设计模式
作为一名java工程狮,大家肯定经历过很多面试,但每次几乎都会被问到什么是MVC设计模式,你是怎么理解MVC的类似这样的一系列关于MVC的问题. [出现频率] [关键考点] MVC的含义 MVC的结构 ...
- Java Web开发中MVC设计模式简介
一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...
随机推荐
- wx处理鼠标事件
#include "MainFrame.h" BEGIN_EVENT_TABLE(MyFrame,wxFrame) EVT_LEFT_DOWN(MyFrame::OnMouseLe ...
- aspose.Cells 导出Excel
aspose aspse.Cells可以操作Excel,且不依赖于系统环境. 使用模板,通过绑定输出数据源 这种适合于对格式没有特别要求的,直接绑定数据源即可.和数据绑定控件差不多. Workbook ...
- Centos6.5自带mysql的启动
CentOS6.5选择web server版本,安装完以后,用rpm -qa | grep mysql 发现已经安装, 但是使用service mysqld start 显示mysqld命令不存在,后 ...
- Heritrix源码分析(六) Heritrix的文件结构分析(转)
本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/642618 本博客已迁移到本人独立博客: http://www.yun5u. ...
- oracle 查询最近执行过的 SQL语句
oracle 查询最近执行过的 SQL语句 select sql_text,last_load_time from v$sql order by last_load_time desc; SELE ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.6.重新配置与缷载11R2 Grid Infrastructure
1.[root@linuxrac1 ~]# /u01/app/oraInventory/orainstRoot.sh 2.[root@linuxrac2 ~]# /u01/app/oraInvento ...
- Linux下的Memcache安装
Linux下Memcache服务器端的安装服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 .下载:http://www.danga.com/memcach ...
- 10、NFC技术:读写NFC标签中的文本数据
代码实现过程如下: 读写NFC标签的纯文本数据.java import java.nio.charset.Charset; import java.util.Locale; import androi ...
- Zabbix监控Linux磁盘I/O
东西都上传到这里了: https://github.com/RexKang/Zabbix/tree/master/OS/Linux-disk-discovery 需要用到的东西: Zabbix的L ...
- windows下mysql5.7安装及配置
装完msi后,复制my-default.ini文件,黏贴为my.ini文件,内容修改如下: # For advice on how to change settings please see# htt ...