gpt4 book ai didi

ios - 如何在 UITableView 中的新 UITableView 自定义单元格上拆分以 ","分隔的文本

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

问题陈述:我想在新的自定义 UITableViewCell 上显示以“,”分隔的文本。

问题:它仅在具有多行属性的单个自定义单元格中显示所有数据,如下所示。

enter image description here

我想这样显示tableView。

enter image description here

现在我尝试在每个新的自定义单元格上显示以“,”分隔的上述数据,如上面的屏幕截图所示,但根据我的代码,它仅显示第一个数据并跳过剩余数据。

let Meaning :String = "Aback,Abacus,Abandon,Able,Aboard"
let Smeaning :String = "Fabric,Habit,keen,Pace"

func tableView(tableViewData: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cell = tableViewData.dequeueReusableCellWithIdentifier("cell")! as! StudentCell

let fmeaning = Mmeaning.characters.split{$0 == ","}.map(String.init)
let smeaning = Hmeaning.characters.split{$0 == ","}.map(String.init)

for var i = 0; i < fmeaning.count; i += 1{
print(fmeaning[i])
//Here it prints all values perfectly
}
for var i = 0; i < smeaning.count; i += 1{
print(smeaning[i])
//Here it prints all values perfectly
}

问题出现在以下两条语句中:仅在 UITableView 中显示第一个值

    cell.lblMeaning1.text = fmeaning[indexPath.row] 
cell.lblMeaning2.text = smeaning[indexPath.row]
return cell;
}

我应该如何为这两个自定义单元格分配一个数组,以便它将数据显示在单独的新自定义单元格上?

最佳答案

为此,您需要在 tableView 中使用节表,还需要在 viewDidLoad 中进行计算,然后重新加载 tableView ,为此在您的 viewController 中声明您的两个数组实例。

var languageDic = [String: [String]]()
var allLanguage = [String]()

override func viewDidLoad() {
super.viewDidLoad()
let mMeaningArray = Mmeaning.characters.split{$0 == ","}.map(String.init)
let hMeaningArray = Hmeaning.characters.split{$0 == ","}.map(String.init)
self.languageDic = ["Marathi Meaning": mMeaningArray,"Hindi Meaning": hMeaningArray] // You can add other langaue in the dic sam way I have added this two
self.allLanguage = Array(self.languageDic.keys) as [String]
self.tableView.reloadData()
}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return self.allLanguage.count
}

func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String {
return self.allLanguage[indexPath.section]
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.languageDic[self.allLanguage[section]].count
}

func tableView(tableViewData: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cell = tableViewData.dequeueReusableCellWithIdentifier("cell")! as! StudentCell
let str = self.languageDic[self.allLanguage[indexPath.section]][indexPath.row]
cell.lblMeaning1.text = str
return cell
}

注意:在cellForRowAtIndexPath 中,您只需要一个标签。

编辑: 如果您想返回具有更多元素的数组的计数,您可以这样尝试。 F

var mMeaningArray = [String]()
var hMeaningArray = [String]()

override func viewDidLoad() {
super.viewDidLoad()
self.mMeaningArray = Mmeaning.characters.split{$0 == ","}.map(String.init)
self.hMeaningArray = Hmeaning.characters.split{$0 == ","}.map(String.init)
self.tableView.reloadData()
}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}

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

func tableView(tableViewData: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cell = tableViewData.dequeueReusableCellWithIdentifier("cell")! as! StudentCell
if indexPath.row < self.mMeaningArray.count {
cell.lblMeaning1.text = self.mMeaningArray[indexPath.row]
}
else {
cell.lblMeaning1.text = ""
}
if indexPath.row < self.hMeaningArray.count {
cell.lblMeaning2.text = self.hMeaningArray[indexPath.row]
}
else {
cell.lblMeaning2.text = ""
}
return cell
}

关于ios - 如何在 UITableView 中的新 UITableView 自定义单元格上拆分以 ","分隔的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39350678/

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