gpt4 book ai didi

ios - 将 View 作为 UITableViewCell 放在 tableView 中是一种好方法吗?

转载 作者:行者123 更新时间:2023-11-28 12:10:38 25 4
gpt4 key购买 nike

我有一个树形 xib 文件,名为 LogoStyle1(青色方 block )、FieldStyle1(紫色方 block )、ButtonStyle1(黄色方 block )。我创建了 UITableView(黑色方 block )。在 TableView 里面,我放了所有的 xibs。

我的问题是这样做是一种好方法,还是我需要为没有 TableView 的 xibs 做所有单独的 customView。因为使用 dequeReusableCell 不需要可重用单元格。

注意:其实我买了一个应用模板,想了解作者为什么这样做。

enter image description here

xib 自定义类:

class LogoStyle1: UITableViewCell {
}

class FieldStyle1: UITableViewCell {
}


class ButtonStyle1: UITableViewCell {
}

override func viewDidLoad() {
super.viewDidLoad()

createView() }

函数创建 View

func createView() {

// Create Header

// Create Table
tableStyle.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)
tableStyle.delegate = self;
tableStyle.dataSource = self;
tableStyle.backgroundColor = UIColor.init(red: 243/255.0, green: 246/255.0, blue: 249/255.0, alpha: 1.0)
tableStyle.separatorColor = UIColor.clear
tableStyle.allowsSelection = false
tableStyle.isScrollEnabled = false

// register UINib for LogoStyle1, FieldStyle1, ButtonStyle1
tableStyle.register(UINib(nibName: "LogoStyle1", bundle: nil), forCellReuseIdentifier: "LogoStyle1")
tableStyle.register(UINib(nibName: "FieldStyle1", bundle: nil), forCellReuseIdentifier: "FieldStyle1")
tableStyle.register(UINib(nibName: "ButtonStyle1", bundle: nil), forCellReuseIdentifier: "ButtonStyle1")

self.view.addSubview(tableStyle)
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.row == 0 {
return 120
}else if indexPath.row == 1 {
return 272
}else{
return 94
}
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch indexPath.row {
case 0:
let cell = tableView.dequeueReusableCell(withIdentifier: "LogoStyle1", for: indexPath) as! LogoStyle1
cell.backgroundColor = UIColor.clear
return cell
case 1:
let cell = tableView.dequeueReusableCell(withIdentifier: "FieldStyle1", for: indexPath) as! FieldStyle1
cell.backgroundColor = UIColor.clear
cell.delegate = self
return cell
case 2:
let cell = tableView.dequeueReusableCell(withIdentifier: "ButtonStyle1", for: indexPath) as! ButtonStyle1
cell.backgroundColor = UIColor.clear
cell.delegate = self
return cell
default:
break
}

let cell = UITableViewCell() // cell nil
return cell
}

最佳答案

如果您谈论的是将 subview 直接添加到表格 View ,而不是其单元格,那么这是一个非常的坏主意。您应该将 TableView 的内容 View 视为私有(private)的。

听起来您需要的是静态 TableView 。我建议仔细阅读。 (您需要为此使用 UITableViewController 和 Storyboard。)

关于ios - 将 View 作为 UITableViewCell 放在 tableView 中是一种好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48625615/

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