如何更改背景选择的颜色故事板静态单元格
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
拖到我们的项目中!
【讨论】:
这不会改变选定的背景颜色。以上是关于如何更改背景选择的颜色故事板静态单元格的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin ios - 如何从静态 TableView 访问单元格