ios - 如何在不使用原型(prototype)单元的情况下创建表格 View 单元?

标签 ios swift uitableview

在我的表格 View 中,每个单元格都不同,并由服务器的 JSON 响应确定。并且将会有无限的可能性。因此,为每种类型的单元定义原型(prototype)是不可能的。

例如,一个单元格将具有标签和按钮,另一个单元格将具有不同顺序的图像和按钮。

如何在表格 View 单元格中实现这种动态结构?

目前我正在做的是:在 cellForRowAtIndexPath 中添加 View 作为 subview ,但这种方式滚动非常滞后。

如何在不影响性能的情况下实现这一目标

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

    let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! MyCell

    for myview in data[indexPath.row].myviews{
        cell.addSubview(myview)
    }

    return cell

}

最佳答案

如果您使用表格 View ,那么您的内容将垂直滚动,对吧?

可以水平放置的 UI 数量存在物理限制。受屏幕尺寸限制。

所以我猜你的 UI 部分是在单元格中垂直布局的?

因此,不要在单元格中垂直布局按钮、标签、图像、另一个按钮和文本字段......

创建名为 ButtonCell、LabelCell、ImageCell、MultiLineLabelCell、TextFieldCell 等的单元格类型...

所以现在,不要创建一个单元格并添加所有这些元素。您可以创建多个单元格,每个单元格包含一种类型的 UI。现在,您可以按任何特定顺序(由 JSON 驱动)使单元格出队,并且不会损失性能。

关于ios - 如何在不使用原型(prototype)单元的情况下创建表格 View 单元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47034401/

相关文章:

ios - 获取数组中的可选值

ios - Xcode 强制构建到锁定的设备?

快速错误: Use of unresolved identifier 'authData'

iOS 图表 : Bar chart spacing and position

ios - UITableViewCell 最初没有正确格式化

ios - 捕获单元格的索引值,但仅来自屏幕上的可见单元格

ios - 如何通过 qml 在移动设备中创建新窗口?

iphone - 从 plist 文件读取时,NSDictionary 包含 <nil> 值

ios - 可选类型 "AnyObject?"的值未解包,您是否打算使用!或者?

ios - 以编程方式选择单元格时通知 UITableViewController