gpt4 book ai didi

swift - 想知道这是否是执行此操作的最佳方式。 tableview 切换单元格大小

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

我有一个表格 View ,其中包含两个共享相同信息的原型(prototype)单元格。当我点击“CardList”按钮时,所有单元格都从一个单元格大小变为更小的单元格大小,然后当我再次点击它时反之亦然。第一个转换工作正常,但从较小的单元格返回到较大的单元格,单元格高度只有大约 50 点,而不是我设置的 338。另外,想知道这是否是通过使用两个不同的单元格来实现此目的的最佳方法。我应该只有一个单元格并重新排列它吗?

 var CellSize = Int()

@IBAction func CardList(sender: AnyObject){

if (sender.titleLabel!?.text == "Card")

{
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 338
self.CellSize = 2
self.tableView.reloadData()
sender.setTitle("List", forState: UIControlState.Normal);
}
else
{
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 142
self.CellSize = 1
self.tableView.reloadData()
sender.setTitle("Card", forState: UIControlState.Normal);
}
}

///////////////

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

if CellSize == 1 {

let cell = self.tableView.dequeueReusableCellWithIdentifier(
"ResultsCell2", forIndexPath: indexPath)
as! ResultsCell2

let row = indexPath.row
cell.Name.text = Names[row]
cell.Image.image = UIImage(named: Images[row])
cell.Price.text = Prices[row]
return cell

}
else
{
let cell2 =
self.tableView.dequeueReusableCellWithIdentifier(
"ResultsCell", forIndexPath: indexPath)
as! ResultsCell

let row = indexPath.row
cell2.Name.text = Names[row]
cell2.Image.image = UIImage(named: Images[row])
cell2.Price.text = Prices[row]

return cell2
}
}

最佳答案

要以正确的方式设置 cellRow 的高度,您应该使用此方法:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
{
if CellSize == 1 {
return 338
}
return 50
}

注意:UITableViewDelegate 方法,为了能够使用它,您应该将 tableView 的委托(delegate)设置为您自己的类,并在那里调用此方法。

关于swift - 想知道这是否是执行此操作的最佳方式。 tableview 切换单元格大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39309413/

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