zoukankan      html  css  js  c++  java
  • iOS开发--Swift 基于MVC设计模式的简单的tableViewDemo

     如果说MVC是最好的设计模式, 可能很多人并不赞同, 但是如果说MVC是最主流, 应用面最广的设计模式, 我想这是毫无争议的. 不说废话, 直接演示在Swift中如何使用MVC新建工程(我并没有新建文件夹, 大家按照自己实际需求来).

      1, 新建文件, 不多废话.

      

      2, ViewController中代码

      

    复制代码
     1 class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{
     2     
     3     var tableView : UITableView!
     4     var dataArray = [Model]()
     5     
     6     override func loadView() {
     7         
     8         super.loadView()
     9         //循环生成字典
    10         for var i = 0; i < 5; ++i{
    11             let item: Dictionary = ["name" : "wang", "age" : "(i)"]
    12             let model = Model()
    13             model.setValuesForKeysWithDictionary(item)
    14             dataArray.append(model)
    15         }
    16         
    17         //初始化tableView
    18         tableView = UITableView(frame: CGRect(x: 0, y: 0,  self.view.frame.width, height: self.view.frame.height), style: UITableViewStyle.Plain)
    19         tableView.delegate = self
    20         tableView.dataSource = self
    21         
    22         self.view.addSubview(tableView)
    23         
    24     }
    25     //tableView协议方法
    26     func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    27         
    28         let indentifier = "tableView"
    29         var cell: MyTableViewCell!
    30         cell = tableView.dequeueReusableCellWithIdentifier(indentifier) as? MyTableViewCell
    31         if cell == nil{
    32             cell = MyTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: indentifier)
    33         }
    34         cell.model = dataArray[indexPath.row]
    35         
    36         return cell
    37     }
    38     
    39     func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    40         
    41         return dataArray.count
    42     
    43     }
    44     override func viewDidLoad() {
    45         super.viewDidLoad()
    46         // Do any additional setup after loading the view, typically from a nib.
    47         self.navigationController?.navigationBar.barTintColor = UIColor.redColor()
    48 
    49     }
    50 
    51     override func didReceiveMemoryWarning() {
    52         super.didReceiveMemoryWarning()
    53         // Dispose of any resources that can be recreated.
    54     }
    复制代码

      3, Model中代码

    复制代码
    1 import UIKit
    2 
    3 class Model: NSObject {
    4 
    5     var name: String!
    6     var age: Int = 0
    7 
    8 }
    复制代码

      4, MyTableViewCell中代码

    复制代码
     1 import UIKit
     2 
     3 class MyTableViewCell: UITableViewCell {
     4 
     5     
     6     var model: Model{
     7         set{
     8             nameLabel.text = newValue.name
     9             ageLabel.text = String(stringInterpolationSegment: newValue.age)
    10         }
    11         get{
    12             return self.model
    13         }
    14     }
    15     var nameLabel: UILabel!
    16     var ageLabel: UILabel!
    17     
    18     override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
    19         super.init(style: style, reuseIdentifier: reuseIdentifier)
    20         createCell()
    21     }
    22 
    23     required init?(coder aDecoder: NSCoder) {
    24         fatalError("init(coder:) has not been implemented")
    25     }
    26     
    27     func createCell(){
    28         nameLabel = UILabel()
    29         ageLabel = UILabel()
    30         
    31         self.contentView.addSubview(nameLabel)
    32         self.contentView.addSubview(ageLabel)
    33     }
    34     
    35     override func layoutSubviews() {
    36         super.layoutSubviews()
    37         nameLabel.frame = CGRect(x: 0, y: 0,  50, height: 20)
    38         ageLabel.frame = CGRect(x: 50, y: 0,  20, height: 20)
    39     }
    40     
    41     
    42     
    43     override func awakeFromNib() {
    44         super.awakeFromNib()
    45         // Initialization code
    46     }
  • 相关阅读:
    Spring中使用Log4j记录日志
    Spring MVC异常处理实例
    Spring MVC静态资源实例
    Spring MVC页面重定向实例
    Spring MVC表单实例
    Eclipse4.6安装Tomcat插件时报错:Unable to read repository at http://tomcatplugin.sf.net/update/content.xml. Received fatal alert: handshake_failure
    Graphviz--图形绘制工具
    使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
    MySQL在并发场景下的问题及解决思路
    MIT KIT OpenID Connect Demo Client
  • 原文地址:https://www.cnblogs.com/XieMinQiang/p/5275730.html
Copyright © 2011-2022 走看看