如何在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单元格中显示多个字符串值到多个标签?的主要内容,如果未能解决你的问题,请参考以下文章

远程通知中的自定义声音 iOS 10,swift 3

iOS 8 中的自定义振动 - Swift

iOS swift中的自定义视图出口在视图控制器中不起作用

从 Swift 中的自定义数据单元开始

如何在 swift ios 的自定义 collectionView 单元中将字符串值显示到多个标签?

iOS 上 Swift 中的自定义 SceneKit 几何图形不起作用,但等效的 Objective C 代码可以