gpt4 book ai didi

swift - 自定义ui table view cell swift如何显示大量标签?

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

I Am displaying data as shown in this image我想显示我用作标签的标记或分数。大约 100 个标签。

我将每个学生的详细信息作为 1 个单独的数组,例如:

student1 = [
[test details, test1, test2, test3, test4],
[subject1,100,98,56,78],
[subject2,67,78,89,56],
[subject3,67,56,34,78],
[subject4,56,46,84,38]]
student2 = [[test details, test1, test2, test3, test4],[subject1,100,98,56,78],[subject2,67,78,89,56],[subject3,67,56,34,78],[subject4,56,46,84,38]]

等等....

我想在 UITableViewCell 自定义单元格中显示这些详细信息。

我编写了 StudentCustomCell 类,它扩展了 UITableViewCell

使用for循环

  1. 创建 ScrollView
  2. 创建分数的背景 View
  3. 并根据我的要求创建标记标签

当我执行代码时,只有学生 1 的相同标签/标记显示在所有单元格中。

因为我在 for-in-loop 中只使用学生 1 计数。

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCell(withIdentifier: "SCell", for: indexPath) as! StudentCustomCell

cell.cricketerName.text = studentDetails[indexPath.row][0]
cell.studentImage.image = UIImage(named: studentDetails[indexPath.row][0])

}

return cricketerCell

}
func scoreScrollView(){

scView = UIScrollView(frame: CGRect(x: 0, y: 120, width: cricketView.frame.width, height: 220))

scView.backgroundColor = .white
self.addSubview(scView)

var formatView:UIView!

for i in 0..<(student1[0] as AnyObject).count! {

formatView = UIView()
xAxis = 10
formatView.frame = CGRect(x: 0, y: CGFloat(yAxis), width: 640, height: 40)

if(i % 2 == 0){
formatView.backgroundColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.2132919521)
}else{
formatView.backgroundColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.4010595034)
}

for j in 0..<student1.count {

let label = UILabel()
label.text = "\(student1[j][i])"
label.frame = CGRect(x: xAxis, y: CGFloat(yAxis)+5, width: 60, height: 30)
xAxis = xAxis + 65
scView.addSubview(label)
}
yAxis = yAxis + 40
scView.addSubview(formatView)
scrolls.append(scView)
}

scView.contentSize = CGSize(width: xAxis, height: scView.frame.height)

}

test details subject1 subject2 subject3 subject4

test1 100 67 67 56

test2 98 78 56 46

test3 56 89 34 84

test4 78 56 78 38

我在表格 View 的单元格/行中显示如上所示的结果。

最佳答案

对于这种复杂的布局需求,你应该考虑序列化你的布局逻辑。流行的做法是使用 XIB/Storyboards 来布局您的 UITableViewCell 派生单元格。

然而,挑战在于根据不断变化的设备尺寸定位元素。因此,您应该利用 iOS 的自动布局功能 - 只需执行一次,您会发现以后包含其他更改要容易得多。

相反 - 想象一下在代码中编写框架设置布局逻辑的恐怖。 2 周后,您将无法弄清楚编写该代码的原因。在您的代码中编写此逻辑的有效案例确实存在(加载 xib/storyboard 的性能原因),但这里不适用。

为此,请参阅详细讨论,例如 thisthis .您不会获得直接代码,但您一定会知道如何有效地执行代码。

关于swift - 自定义ui table view cell swift如何显示大量标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56215880/

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