如何在没有数组的 UITableView 中显示 UITableView Cell?
Posted
技术标签:
【中文标题】如何在没有数组的 UITableView 中显示 UITableView Cell?【英文标题】:How to show UITableView Cell in UITableView without array? 【发布时间】:2018-05-11 11:21:07 【问题描述】:我有这个代码:
class UserProfilViewController: UIViewController
// Outlets
@IBOutlet weak var userProfileTableView: UITableView!
override func viewDidLoad()
super.viewDidLoad()
override func viewWillAppear(_ animated: Bool)
super.viewWillAppear(animated)
self.tabBarController?.navigationItem.title = "Profil"
// MARK: - Table View Data Source
extension UserProfilViewController
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return 1
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "UserProfilCell", for: indexPath)
return cell
我在 bitbucket 中的项目:https://bitbucket.org/trifek/karta-nauka/src/master/
我在 tableview (UserProfil.storyboard) 上放置了一个 tableviewcell 单元格。我有一个表格,我想在这个单元格中显示。问题是单元格不显示。有人知道怎么解决吗?
【问题讨论】:
“我有一个表单”,是UIView吗? 是的,我有故事板 UserProfil.storyboard。在这个我有表格视图和单元格的视图。这个单元格是不可见的:( 如果是静态单元格,为什么要创建动态tableview,也可以使用静态单元格 是的,它是静态单元格 那就不要使用动态单元格 【参考方案1】:根据您分享的代码,请将您的代码更改为以下代码。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "UserProfilCell", for: indexPath) as! UserProfilTableViewCell
return cell
如有任何疑问,请告诉我。
【讨论】:
【参考方案2】:恕我直言,首先尝试清除您的要求。如果你想显示固定数量的单元格,那么你可以简单地使用静态单元格。如果您的单元格是动态的,即它们的数量取决于某些计算或其他逻辑,那么您可以使用动态单元格。使用动态单元格时,请验证您是否已注册(如果您将 xib
用于单元格)并验证单元格 identifier
。
【讨论】:
【参考方案3】: @Lukasz
Please use the below code for this.
class UserProfileViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view.
setUIComponents()
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
private func setUIComponents()
registerNibs()
extension UserProfileViewController: UITableViewDelegate, UITableViewDataSource
internal func registerNibs()
tableView.register(UINib(nibName: String(describing: UserProfileTableCell.self), bundle: Bundle.main), forCellReuseIdentifier: kUserProfileCellReuseId)
//MARK: TableView Methods -
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return 5
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let sessionCell: UserProfileTableCell.self = tableView.dequeueReusableCell(withIdentifier: kUserProfileCellReuseId, for: indexPath) as! UserProfileTableCell.self
cell.titleLabel.text = “TEST”
return sessionCell
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
tableView.deselectRow(at: indexPath, animated: true)
class UserProfileTableCell: UITableViewCell
//Set the "kUserProfileCellReuseId" in nib to register identifier.
let kUserProfileCellReuseId = "kUserProfileCellReuseId"
//MARK: - Override Methods
override func awakeFromNib()
super.awakeFromNib()
// Initialization code
setUIComponents()
private func setUIComponents()
【讨论】:
【参考方案4】:您永远不会声明您的视图控制器符合UITableViewDataSource
或UITableViewDelegate
协议。如果您不这样做,您将无法将视图控制器设置为表视图的数据源或委托。
【讨论】:
以上是关于如何在没有数组的 UITableView 中显示 UITableView Cell?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UITableView 中安全地使用未初始化的数组并显示一个空表
使用数组项属性值在 UITableView/UICollectionView 中显示
如何在 UITableView 中显示数组中的 x 个对象,然后在向下滚动时显示更多?
如何发送数组列表以解析和检索它并在 UItableView 中显示它?