如何在swift ios中的自定义TableView单元格中显示多个字符串值到多个标签?
Posted
技术标签:
【中文标题】如何在swift ios中的自定义TableView单元格中显示多个字符串值到多个标签?【英文标题】:How can I display multiple string values to multiple labels in a custom TableView Cell in swift ios? 【发布时间】:2016-12-18 06:48:06 【问题描述】:var leadername = ["1","2","3","4"]
var districts = ["Delhi","Kerala"]
override func viewDidLoad()
leadTableSetup()
super.viewDidLoad()
func leadTableSetup()
LeadTableView.delegate = self
LeadTableView.dataSource = self
self.LeadTableView.register(UINib(nibName: "LeaderBoardTableViewCell", bundle: nil), forCellReuseIdentifier: "leadCell")
func numberOfSections(in tableView: UITableView) -> Int
return 5
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return 14
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "leadCell") as! LeaderBoardTableViewCell
// Set text from the data model
cell.areaLbl.text = districts[indexPath.row]
cell.leaderNameLbl.text = leadername[indexPath.row]
return cell
我已经声明了两个字符串,我需要在我创建的自定义集合视图单元格的标签中显示这些字符串。我怎样才能做到这一点?我需要在一个标签中显示“leadername”字符串,在另一个标签中显示“地区”标签。
【问题讨论】:
可以显示LeaderBoardTableViewCell
Sample 我认为你需要这样的输出。每个单元格中有两个标签,但有值符合数组值。对? @Rakesh
使用这个演示,并尝试学习一些关于它的基础知识,即 tableView 的工作原理以及如何维护自定义或 fromXib 的 UITableViewCell。因为你可以用 tableView 做很多事情。所以我的建议是首先学习基础知识,否则你总是卡住。 Shared demo 演示结束后,如果还有问题,请告诉我。
@TinuDahiya。正是
@AdrianBobrowski 类 LeaderBoardTableViewCell: UITableViewCell IBOutlet weak var approvalLabel: UILabel! IBOutlet 弱变量 areaLbl:UILabel! IBOutlet 弱 var leaderNameLbl:UILabel! override func awakeFromNib() super.awakeFromNib() // 初始化代码 override func setSelected(_ selected: Bool, animated: Bool) super.setSelected(selected, animated: animated) // 为选中状态配置视图
【参考方案1】:
继续这个演示,Shared Demo
演示结束后,如果您仍然遇到任何问题,请告诉我。
现在听这里
我认为你需要这样的输出,
按照以下步骤操作:-
在你的故事板中创建一个新的视图控制器(比如 CustomTableVC)和一个 UITableView(给它自己的类提供约束和委托),获取 UItableView 的出口(比如 tblMyCustom)
现在按 CLT+N 获取新文件,然后像下图那样,Subclass - UItableViewCell 并勾选 XIB 选项。
打开我们的 xib 文件,添加新的 UIView(如 myView,如下图所示),在这个 myView 中添加两个标签
现在在其 customCell 类中取出这两个标签
类 CustomTableCell: UITableViewCell
@IBOutlet var lblLeaderNo: UILabel!
@IBOutlet var lblDistict: UILabel!
override func awakeFromNib()
super.awakeFromNib()
// Initialization code
override func setSelected(_ selected: Bool, animated: Bool)
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
现在回到你的 Viewcontroller 类
import UIKit
class CustomTableVC: UIViewController , UITableViewDelegate, UITableViewDataSource
@IBOutlet var tblMyCustom: UITableView!
var leaderno : [字符串]!
var distict : [字符串]!
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view.
self.tblMyCustom.register(UINib(nibName: "CustomTableCell", bundle: nil), forCellReuseIdentifier: "customCell")
self.leaderno = ["1", "2", "3", "4"]
self.distict = ["Delhi","Kerala", "Haryana", "Punjab"]
// above both array must have same count otherwise, label text in null
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return leaderno.count;
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
var customCell: CustomTableCell! = tableView.dequeueReusableCell(withIdentifier: "customCell") as? CustomTableCell
customCell.lblLeaderNo.text = self.leaderno[indexPath.row]
customCell.lblDistict.text = self.distict[indexPath.row]
return customCell
首先是VC的代码,这里不是单一的代码格式,我不知道为什么。
现在,按照这些步骤,您将获得输出,因为我在程序开始时向您展示图像。
【讨论】:
那么当您在情节提要中设计自定义单元格时,如何将插座连接到表格视图单元格。我在这里遇到了同样的问题,该解决方案对我有用,但是我无法将不同的插座附加到我的表格视图单元格(这是一个独立于表格视图控制器的文档)。 @LEKYSMA ,您在单元格文件中附加插座,就像您一样。没什么不同。您也可以在没有 XIB 的情况下获得相同的结果。仍有问题,然后指定确切的问题点以获得更好的帮助。以上是关于如何在swift ios中的自定义TableView单元格中显示多个字符串值到多个标签?的主要内容,如果未能解决你的问题,请参考以下文章