gpt4 book ai didi

ios - Swift/如何避免 UITableView rowHeight 发生不必要的变化

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

我有一个带有动态单元格和不同部分的 UITableViewController。一旦 Controller 被调用,rowHeigths 就完美了。然后我移动到另一个 Controller (在另一个 rootViewController 中)——完全脱离 UITableViewController 的上下文和字符串。

一旦我回到 UITableViewController,将不再调用 viewDidLoad。没事儿。但是所有单元格的大小都相同(我会说 44,基本行高是多少)。

是否有可能避免这种行为?

这是我的代码,也是唯一一次设置 rowHeight 的时间:

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

if indexPath.section == 0 {
tableView.rowHeight = 125

let cell = tableView.dequeueReusableCellWithIdentifier("bla") as! bla
return cell
}

if indexPath.section == 1 {
tableView.rowHeight = 80

let cell = tableView.dequeueReusableCellWithIdentifier("bla") as! bla
return cell
}

if indexPath.section == 2 {
tableView.rowHeight = 50

let cell = tableView.dequeueReusableCellWithIdentifier("bla") as! bla
return cell

}

if indexPath.section == 3 {
tableView.rowHeight = 60

let cell = tableView.dequeueReusableCellWithIdentifier("bla") as! bla
return cell
}

if indexPath.section == 4 {
tableView.rowHeight = 450

let cell = tableView.dequeueReusableCellWithIdentifier("bla") as! bla
return cell

}

return UITableViewCell()
}

最佳答案

您应该实现 heightForRowAtIndexPath 方法以在同一个 tableview 中设置不同的单元格高度。

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
var cellHeight : CGFloat = 44.0
switch indexPath.section
{
case 0: cellHeight = 125.0
case 1: cellHeight = 80.0
case 2: cellHeight = 50.0
case 3: cellHeight = 60.0
case 4: cellHeight = 450.0
default: cellHeight = 44.0
}
return cellHeight
}

请引用 UITableViewDelegate Protocol Reference有关此委托(delegate)方法的更多详细信息。

关于ios - Swift/如何避免 UITableView rowHeight 发生不必要的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39424908/

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