iOS开发--Swift 基于MVC设计模式的简单的tableViewDemo

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

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

  iOS开发--Swift 基于MVC设计模式的简单的tableViewDemo

  2, ViewController中代码

  

 class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{

     var tableView : UITableView!
     var dataArray = [Model]()

     override func loadView() {

         super.loadView()
         //循环生成字典
         ; i < ; ++i{
             let item: Dictionary = ["name" : "wang", "age" : "\(i)"]
             let model = Model()
             model.setValuesForKeysWithDictionary(item)
             dataArray.append(model)
         }

         //初始化tableView
         tableView = UITableView(frame: CGRect(x: , y: , width: self.view.frame.width, height: self.view.frame.height), style: UITableViewStyle.Plain)
         tableView.delegate = self
         tableView.dataSource = self

         self.view.addSubview(tableView)

     }
     //tableView协议方法
     func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

         let indentifier = "tableView"
         var cell: MyTableViewCell!
         cell = tableView.dequeueReusableCellWithIdentifier(indentifier) as? MyTableViewCell
         if cell == nil{
             cell = MyTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: indentifier)
         }
         cell.model = dataArray[indexPath.row]

         return cell
     }

     func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

         return dataArray.count

     }
     override func viewDidLoad() {
         super.viewDidLoad()
         // Do any additional setup after loading the view, typically from a nib.
         self.navigationController?.navigationBar.barTintColor = UIColor.redColor()

     }

     override func didReceiveMemoryWarning() {
         super.didReceiveMemoryWarning()
         // Dispose of any resources that can be recreated.
     }

  3, Model中代码

 import UIKit

 class Model: NSObject {

     var name: String!
     var age: Int = 

 }

  4, MyTableViewCell中代码

 import UIKit

 class MyTableViewCell: UITableViewCell {

     var model: Model{
         set{
             nameLabel.text = newValue.name
             ageLabel.text = String(stringInterpolationSegment: newValue.age)
         }
         get{
             return self.model
         }
     }
     var nameLabel: UILabel!
     var ageLabel: UILabel!

     override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
         super.init(style: style, reuseIdentifier: reuseIdentifier)
         createCell()
     }

     required init?(coder aDecoder: NSCoder) {
         fatalError("init(coder:) has not been implemented")
     }

     func createCell(){
         nameLabel = UILabel()
         ageLabel = UILabel()

         self.contentView.addSubview(nameLabel)
         self.contentView.addSubview(ageLabel)
     }

     override func layoutSubviews() {
         super.layoutSubviews()
         nameLabel.frame = CGRect(x: , y: , width: , height: )
         ageLabel.frame = CGRect(x: , y: , width: , height: )
     }

     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code
     }

  希望能给大家一个思想, 在学习Swift的道路上, 如果之前有过一定的Java等函数语言的基础, Swift相比OC来说好学很多, 如果只是OC的基础的话, 会不太习惯类, 实例化, 静态方法属性等, 需要多多下功夫.

  Demo地址:https://github.com/JianweiWangs/-MVC-Swift-TableView.git

  希望大家都能学好Swift!

上一篇:Android - include属性用法


下一篇:PHP 5.5以后加速插件:Zend Opcache