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

Posted

技术标签:

【中文标题】如何更改背景选择的颜色故事板静态单元格【英文标题】:How to change background selected color storyboard static cells 【发布时间】:2012-01-13 12:21:53 【问题描述】:

我有一个带有情节提要的应用程序。在一个场景中,我有一个带有静态单元格内容的表格视图。是否可以将背景选择的颜色更改为默认选项之外的另一种颜色(蓝色和灰色)?

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

提前致谢!

【问题讨论】:

【参考方案1】:

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

    UIView 添加到您的UITableViewCell 并将其链接到单元格的selectedBackgroundView 属性(要找到此属性,您需要将线从"New Reference Outlet" 拖动并释放到所需的@ 987654327@) 将UIView 的颜色更改为所选状态所需的颜色

您可以使用backgroundView 属性执行相同的操作。此外,您可以使用UIImageView 来使用图像,而不是UIView 的单色背景。

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

【讨论】:

好方法!这是使用故事板的方式,我们中的许多人都不熟悉,以及它们被认为是如何使用的。谢谢! 您是如何在没有出现此错误的情况下完成此操作的? ***.com/questions/13090338/… 嗨,@MartinBerger。您可以使用 Storyboard 视图将 UIView 拖动到 UITableViewCell。如果您在将其拖动到正确位置时遇到问题,请尝试使用层次视图拖动它:将视图放在场景中的任何位置并将其拖动为单元格的子级。 @MartinBerger,我刚刚在我的答案中添加了一个示例文件。打开它并检查它以查看您缺少的内容。对于延迟的答复,我们深表歉意。 这种方法很棒,但在 ios 6.0 上无法使用自动布局(布局子视图崩溃)。【参考方案2】:

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

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];
      

【讨论】:

谢谢卡洛斯...你是西班牙人吗? 这种方法可能有效。我真的不知道当你有一堆单元格并且表格滚动时它会如何表现。在动态单元格中,它们会在需要时被缓存和丢弃。在 didLoad 方法期间更改背景将确保第一个呈现单元格具有正确的背景颜色,但可能无法确保滚动单元格将保持该引用。无论如何,它需要编码,并且静态单元格旨在无需编码即可使用......我发布了一个答案,让您无需编码即可完成。【参考方案3】:

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

对于静态单元格,您应该可以更改背景颜色,但它不起作用。然而,每个单独的单元格将在 IB 中自动在其中包含一个内容视图。如果我们改变这个 Content View 的背景,它就会改变单元格的背景。

只是添加到@Leandro Alves 的答案中,所以我们不必将额外的UIViews 拖到我们的项目中!

【讨论】:

这不会改变选定的背景颜色。

以上是关于如何更改背景选择的颜色故事板静态单元格的主要内容,如果未能解决你的问题,请参考以下文章

带有故事板的自定义静态 TableView - 单元格背景

Xamarin ios - 如何从静态 TableView 访问单元格

应用于控制器的背景未应用于故事板swift中的表格视图单元格

XCode故事板中的自定义静态表格单元格?

故事板中静态样式单元格的替代方法是啥?

excel使用公式更改单元格背景颜色?