我有一个带故事板的应用程序。在一个场景中,我有一个带有静态单元格内容的tableview。是否可以将背景选择的颜色更改为默认选项中的另一种颜色(蓝色和灰色)?
我知道如果我可以在forRowAtIndexPath中更改单元格背景颜色,但在这种情况下我没有来自tableview的任何数据源函数。我确信可以从IB或其他功能中修改...
提前致谢!
答案 0 :(得分:18)
您无需编写任何一行代码即可完成此操作。您可以使用故事板完成所有操作。就这样做:
UIView
添加UITableViewCell
并将其链接到单元格的selectedBackgroundView
属性(要查找此属性,您需要从{{1}中拖出该行并将其释放到所需的"New Reference Outlet"
)UITableViewCell
的颜色更改为所选状态的所需颜色您可以使用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
拖到我们的项目上!