【问题标题】:How to set conditional static tableview cell content in storyboard?如何在情节提要中设置条件静态表格视图单元格内容?
【发布时间】:2016-03-28 10:11:09
【问题描述】:

我在情节提要中制作了一个带有静态单元格的 tableview 控制器(我使用了静态单元格,因为它是一个设置屏幕,其中几乎所有单元格都是静态的,除了一个)。有一个单元格在不同的条件下采用不同的内容(来自不同的 UITableViewCell xib s)。如果我尝试在 func tableView(tableView: UITableView, cellForRowAtIndexPath ... 中为该单元格分配一些值...,那么我也必须设置其他单元格。有没有一种方法可以让我只设置一个单元格并将其他单元格作为如何它们在 xib 中。?

另外,如果有可能的话,如果我已经制作了一个单元格的 xib 内容,我可以分配一个静态单元格吗?

【问题讨论】:

    标签: ios swift uitableview


    【解决方案1】:

    使用willdisplaycell函数

        override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    
          if (indexPath.row == 5){ //your row where you want to change
    
    
          }
    
        }
    

    其他行将与 stroybord 中的一样

    【讨论】:

    • 我想在不同条件下为单元格加载不同的 nib 文件。这种方法不会发生。在 cellForRowAtIndexPath 方法中,所有单元格都发生了变化,我在情节提要中制作的静态单元格被默认单元格替换。如何仅更改选定的单元格并让剩余的单元格保持原样
    • 对每个单元格使用不同的单元格标识符并为该单元格子类化
    • 或另一个选项是制作@IBoulets,如 -waris-shams 所述
    【解决方案2】:

    对于带有静态单元格的 UITableViewController,不需要实现 cellForRowAtIndexPath。您只需要制作 IBOutlet 的单元格标签或要在运行时根据条件更改其值的控件。之后在 UITableViewController 类 viewDidLoad 或 ViewDidAppear 中根据您的条件更改所需的控件值。

    【讨论】:

    • 我不想编辑标签。我想改变整个细胞。我有 2 个 xib,在某些情况下我想使用一个,否则另一个。那么该怎么做呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多