iOS程序员iOS进阶指南

初识MVC

2016-04-23  本文已影响282人  温州的柯

没有**,说个图啊,果断上个图压压场子先

3.jpg

...载入中
......持续载入中
好吧,我放弃了,来点文字吧。

借用某度上的介绍

MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。[1-2]
模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。[3]
(概述内容来源:[4] )

($@@$@#@%$@@!@$¥%%%...................
1.jpg

你就不能????👉

2.jpg

以下我就举一个很简单栗子,和大家谈谈到底神马是MVC(仅供参考)

开始

1.png
谁知道,受到了汪界的一致好评!500个人冲到我家争先都要给自己来一只这样的名片。我说好好好,大家不要急,一个个来。

示例

5.png
class NameCard: UIView {  //说明视图里都含有哪些元件
    var imageView:UIImageView?
    var nameLabel:UILabel?
    var sexLabel:UILabel?
    var heightLabel:UILabel?
    var bussinessLabel:UILabel?
    var telePhoneLabel:UILabel?
    var emailLabel:UILabel?

    override init(frame: CGRect) {
        super.init(frame: frame)
        
        // 初始化和描述这些元件的位置以及大小
        imageView = UIImageView(frame: CGRect(x: 10, y: 10, width: 60, height: 60))
        nameLabel = UILabel(frame: CGRect(x: 10, y: CGRectGetMaxY(imageView!.frame)+15, width: 100, height: 20))
        sexLabel = UILabel(frame: CGRect(x: 10, y: CGRectGetMaxY(nameLabel!.frame)+10, width: 140, height: 20))
        heightLabel = UILabel(frame: CGRect(x: 10, y: CGRectGetMaxY(sexLabel!.frame)+15, width: 100, height: 20))
        
        bussinessLabel = UILabel(frame: CGRect(x: 135, y: 10, width: 230, height: 90))
        bussinessLabel?.numberOfLines = 3
        
        emailLabel = UILabel(frame: CGRect(x: self.frame.width-160, y: self.frame.height-25, width: 150, height: 20))
        telePhoneLabel = UILabel(frame: CGRect(x: self.frame.width-120, y: CGRectGetMinY(emailLabel!.frame)-25, width: 110, height: 20))
        //加到视图上
        self.addSubview(imageView!)
        self.addSubview(nameLabel!)
        self.addSubview(sexLabel!)
        self.addSubview(heightLabel!)
        self.addSubview(bussinessLabel!)
        self.addSubview(emailLabel!)
        self.addSubview(telePhoneLabel!)
//改一下背景色为灰色
        self.backgroundColor = UIColor.groupTableViewBackgroundColor()
     
    }
    
    required init?(coder aDecoder: NSCoder) {   // 这句系统会提示你输入
        fatalError("init(coder:) has not been implemented")
    }
}
9.png 10.png 11.png

MVC ,有点大概的理解了吗?

上一篇下一篇

猜你喜欢

热点阅读