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及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...
随机推荐
- SAS Config文件 处理流程
Processing Options Specified by Additional CONFIG Options You can also specify additional –CONFIG op ...
- mac 下用 brew 安装mongodb
转自:mac 下用 brew 安装mongodb 经过这位仁兄的文章指导,终于连上了mongodb. 启动mongo数据库,就是打开一个终端sudo mongod,然后打开另一个终端sudo mong ...
- 嵌入式 hi3518平台多路码流添加osd
<span style="font-family:Courier New;"> /******************************************* ...
- 【转】C# 委托的介绍(delegate、Action、Func、predicate)
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递.事件是一种特殊的委托. 1.委托的声明 (1). delegate delegate我们常用到的一种声明 Delegat ...
- 【Android】Handler使用入门
本讲内容:Handler使用入门 当用户点击一个按钮时如果执行的是一个常耗时操作的话,处理不好会导致系统假死,用户体验很差,而Android则更进一步,如果任意一个Acitivity没有响应5秒钟以上 ...
- Delphi 串口使用校验位
平时都用的8N1的模式,这次使用了校验位,因此串口的初始化工作需要改变 #ifdef RT_USING_UART2 USART_InitStructure.USART_BaudRate = 9600; ...
- 获取 windows地址栏 网页地址栏 文件名
int start=str.LastIndexOf("\\"); fileName=str.SubString(start+1,str.Length-start-1); int s ...
- SQL跨数据库复制表数据
SQL跨数据库复制表数据 不同服务器数据库之间的数据操作 不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from 源数据库.. ...
- 二级指针的作用及用途 .xml
pre{ line-height:1; color:#9f1d66; background-color:#e1e1e1; font-size:16px;}.sysFunc{color:#5d57ff; ...
- Java基础 —— CSS
CSS:层叠样式表(Cascading Style Sheets) --> 提高显示功能,定义样式 html提供了div与span,只为了封装文本数据,div为一行数据,span为行内的数据. ...