gpt4 book ai didi

ios - 我应该为应用程序中的每个表创建一个 UITableViewCell 类吗?

转载 作者:行者123 更新时间:2023-11-29 05:09:01 26 4
gpt4 key购买 nike

您好,我是 iOS 开发新手,我在 Xcode 11.0 上使用 swift 5,我知道如何创建表格 View 和显示数据,但我有一些与干净代码和最佳实践相关的问题:

1-我应该为同一个表中的每个单元格创建一个 UITableViewCell 类吗?或者同一个表中的所有单元格都属于一个类?

2-我可以对不同页面上的不同表格使用相同的 UITableViewCell 类吗?

我观看了几个在线教程,但它们都只是解释如何创建表格,并没有涉及那么多细节。

最佳答案

对于第一个问题,您实际上可以对不同的单元格使用相同的 UITabelViewCell,这只是它们共享多少设计以及如果区分它们则需要重复多少代码的问题。

是的,实际上,如果您的 UITabelViewCell 在不同的 TableView 中使用,那么您需要外部化您的单元格,这意味着您需要将其放在 Xib 中的 TableView 之外或以编程方式创建,然后在您的每个 TableView 中注册该单元格会用它。

//Created programmatically
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell-identifier")

//From a Xib
tableView.register(UINib(nibName: "Nib-identifier", bundle: nil), forCellReuseIdentifier: "cell-identifier")

注意:将标识符放在类内的静态变量中(如果有的话,也是你的 Nib ),如下所示:

//  https://gist.github.com/JCTec/e64e34e204a6bb99ef92f73b2ee0ee7d
// String+LoadNib.swift
// Created by Juan Carlos Estevez on 17/12/19.
extension String {
/// Carga un Archivo Nib con el nombre de la cadena de texto.
///
/// - Parameter bundle: Bundle a agregar.
/// - Returns: UINib.
func loadNib(bundle: Bundle? = nil) -> UINib? {
return UINib(nibName: self, bundle: bundle)
}
}


class MyTableViewCell: UITableViewCell {
static let identifier: String = "cell-identifier"
static var nib: UINib! = {
return "nib-identifier".loadNib()
}()
}

//Use it like this
//Created programmatically
tableView.register(MyTableViewCell.self, forCellReuseIdentifier: MyTableViewCell.identifier)

//From a Xib
tableView.register(MyTableViewCell.nib, forCellReuseIdentifier: MyTableViewCell.identifier)

关于ios - 我应该为应用程序中的每个表创建一个 UITableViewCell 类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59860061/

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