如何更改背景选择的颜色故事板静态单元格

时间:2012-01-13 12:21:53

标签: uitableview storyboard

我有一个带故事板的应用程序。在一个场景中,我有一个带有静态单元格内容的tableview。是否可以将背景选择的颜色更改为默认选项中的另一种颜色(蓝色和灰色)?

我知道如果我可以在forRowAtIndexPath中更改单元格背景颜色,但在这种情况下我没有来自tableview的任何数据源函数。我确信可以从IB或其他功能中修改...

提前致谢!

3 个答案:

答案 0 :(得分:18)

您无需编写任何一行代码即可完成此操作。您可以使用故事板完成所有操作。就这样做:

  1. UIView添加UITableViewCell并将其链接到单元格的selectedBackgroundView属性(要查找此属性,您需要从{{1}中拖出该行并将其释放到所需的"New Reference Outlet"
  2. UITableViewCell的颜色更改为所选状态的所需颜色
  3. 您可以使用UIView属性执行相同的操作。此外,您可以使用backgroundView来使用图片,而不是使用UIImageView的单色背景。

    这是一个使用自定义UIViewController而不是UITableViewController的示例文件,但它同时适用于:http://uxp.com.br/downloads/CustomCell.zip

答案 1 :(得分:8)

我遇到了同样的问题。该解决方案包含两部分:

1)获取单元格,查看this。 2)更改背景颜色:您必须创建一个具有所需背景颜色的UIView,并将其设置为单元格的selectedBackgroundView

例如,我在uitableviewcontroller的viewDidLoad中使用了这段代码:

UIView *backgroundSelectedCell = [[UIView alloc] init];
[backgroundSelectedCell setBackgroundColor:[UIColor colorWithRed:130/256.0 green:169/256.0 blue:171/256.0 alpha:1.0]];

for (int section = 0; section < [self.tableView numberOfSections]; section++)
    for (int row = 0; row < [self.tableView numberOfRowsInSection:section]; row++)
    {
        NSIndexPath* cellPath = [NSIndexPath indexPathForRow:row inSection:section];
        UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:cellPath];

        [cell setSelectedBackgroundView:backgroundSelectedCell];
    }  

答案 2 :(得分:-2)

以下是我们这些使用X-Code 5 +上的自动布局的解决方案......

对于静态细胞,你可以改变背景颜色,但它不会起作用。但是,每个单独的单元格将在IB中自动拥有内容视图。如果我们更改此内容视图的背景,则会更改单元格背景。

只需要添加到@Leandro Alves&#39;回答,所以我们不必将额外的UIViews拖到我们的项目上!