您的位置:首页 > 移动开发 > Swift

swift中cell的两种创建区别和extension的使用。让我们开发更有条理

2015-10-12 09:03 627 查看
//

// AppDelegate.swift

// WeiBo

//

// Created by 胡双飞 on 15/10/4.

// Copyright © 2015年 HSF. All rights reserved.

//

import UIKit

//MARK:定义cell注册问题

private let HomeCellIdentifier = "HomeCell"

class HomeTableViewController: BaseTableViewController {

override func viewDidLoad() {

super.viewDidLoad()

if !UserAccountViewModel.shareUserAccount.isUserLogin{

visitorView?.setupInfo(nil, message: "关注一些人,回这里看看有什么惊喜")

}

loadData()

tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: HomeCellIdentifier)

}

//加载数据

private func loadData(){

statusListViewModel.loadStatus().subscribeError({ (error) -> Void in

printLog(error)

}) { () -> Void in

self.tableView.reloadData()

}

}

//MARK: - 懒加载

private lazy var statusListViewModel = StatusListViewModel()

}

//extension 类似于OC中的分类,扩展的意思。我们可以将UITableViewDataSource/UITabelTableViewDelegate放到这里更加清晰

extension HomeTableViewController{

//MARK:UITableViewController

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

return statusListViewModel.status?.count ?? 0

}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

//1 iOS5.0时 dequeueReusableCellWithIdentifier: 会查询可重用cell,如果有则拿来用,如果没有则创建一个。

//2 iOS6.0时 dequeueReusableCellWithIdentifier: forIndexPath:需要registerCell/storyboard/xib注册一个cell,,如果缓存区cell不存在,会使用cell实利化一个新的cell。

let cell = tableView.dequeueReusableCellWithIdentifier(HomeCellIdentifier, forIndexPath: indexPath)

//1.获取微博数据

let status = statusListViewModel.status![indexPath.item] as! Status

cell.textLabel?.text = status.text

return cell

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: