在不同的表格视图单元格布局之间快速切换

Posted

技术标签:

【中文标题】在不同的表格视图单元格布局之间快速切换【英文标题】:swift toggle between different table view cell layouts 【发布时间】:2015-09-11 12:55:46 【问题描述】:

我想知道在表格视图的不同布局之间切换时有哪些技术。

我现在拥有的是我的 VC 中的嵌入式表格视图/自定义单元格。 它有一个简单的列表设计,一个图像/标题。 我想做的是当用户按下“网格”按钮时,它会将布局更改为更大的单元格,有点像 instagram 的样子。

那么是否可以在 tableview 中的不同单元格布局之间进行动画处理?

谢谢!

【问题讨论】:

【参考方案1】:

我不相信一旦初始化就可以更改样式。但是,您可以在运行时在自己的自定义单元之间进行更改,并且最好使用针对不同单元类型的协议来实现。

【讨论】:

你的意思是“容器vc”和表视图vc之间的协议/委托吗?【参考方案2】:

是的,这是可能的。我已经使用了它,但我并不是说这是最终的方式。

以下是您可能希望遵循的步骤:

用不同的标识符设计两个不同的单元格(我是从情节提要中完成的)

cellForRowAtIndexPath 方法中,检查标识符并相应地显示布局。

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

let cellIdentifier = (self.layoutSegmentControl.selectedSegmentIndex == 0) ? "gridLayoutCell" : "listLayoutCell" //I used segment control to toggle, change the condition as per your need

let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as! MyCustomTableViewCell
if(cellIdentifier == "gridLayoutCell")

  //Set the values 
  cell.bigImgView.image = [yourimage] //for ex
  ...


if(cellIdentifier == "listLayoutCell")

  //Set the values
  cell.thumbnailImgView.image = [yourimage] //for ex
  ...


切换时重新加载您的表格视图(布局更改)

试试这个,让我知道。希望它对你有用!

【讨论】:

谢谢 试试看,我猜我不能用这个方法得到动画,但它看起来很干净,很容易使用两个单元格: class TableViewCellOne: UITableViewCell class TableViewCellTwo: UITableViewCell 是的..我使用了相同的自定义单元格,因为我不需要每个单独的单元格

以上是关于在不同的表格视图单元格布局之间快速切换的主要内容,如果未能解决你的问题,请参考以下文章

自动布局 - 在表格单元格中对齐视图

表格视图中单元格之间的快速距离[关闭]

如何根据标签文本快速更改表格视图单元格高度?

将表格视图快速添加到表格视图单元格中的问题

在表格视图单元格之间移动的文本

如何从一个带有动态单元格的表格切换到 3 个或更多不同的视图