gpt4 book ai didi

ios - 如何扩展 UITableView?

转载 作者:行者123 更新时间:2023-11-28 08:40:42 25 4
gpt4 key购买 nike

我在 30 个统一文件中使用 UITableViewDelegate、UITableViewDataSource,全部使用相同的代码,我怎样才能使它们可重用并扩展它们?它只是 UITableViewDelegate 的两种方法和一些自定义的东西,比如行高。

示例:

import UIKit
import MMDrawerController
import SwiftyJSON


class FooViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
var texto = [String]()

@IBOutlet weak var table: UITableView!

override func viewDidLoad() {
let load = Loader(view: self.view)
table.delegate = self
table.dataSource = self
table.rowHeight = UITableViewAutomaticDimension
table.estimatedRowHeight = 44.0

let api = API()
api.get("agenda") { responseObject, error in

let value = JSON(responseObject!)
self.texto.append(value["agenda"]["textoagenda"].stringValue)

self.table!.reloadData()
load.stop(self.view)
}
}


override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.texto.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell")! as UITableViewCell
cell.textLabel?.text = self.texto[indexPath.row]
return cell
}


}

最佳答案

您的 Controller 不必是委托(delegate)。您可以让任何类成为委托(delegate)。

class MyTableDelegate: UITableViewDelegate {

// put table functions here

}

然后在你的 Controller 中

@IBOutlet weak var table: UITableView!

override func viewDidLoad() {
let load = Loader(view: self.view)
table.delegate = MyTableDelegate()

// etc

}

当然,这意味着您对 Controller 属性的访问权限有限。

关于ios - 如何扩展 UITableView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36562403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com