0

我的应用程序中有三个单独的“UIViewControllers”。每个都有 UITableView 附加到它。

  • 第一个 UITableView 只显示一个数据行表(新闻项目)。
  • 第二个 UITableView 显示一个搜索视图,其中有几个部分,用户在其中键入不同的搜索条件。
  • 第三个 UITableView 显示文章详细信息。

在每个 UITableView 中,都有一个按钮。

  • 第一个 UITableView 有“加载更多文章”按钮。
  • 第二个 UITableView 有“搜索”按钮
  • 第三个 UITableView 有“访问文章页面”按钮。

由于所有三个视图都是 UITables,我创建了一个自定义 UITableCellView 并添加到每个 UITableViews。这是我在第二个 UITableView 中的“ButtonCell”示例

ButtonCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ButtonCell"];
NSString *cellText = @"Search";
[[cell buttonLabel] setText:cellText];
return cell;

这很好用——正是我想要的。

现在我在第一个和第三个 UITableView 中添加了相同的“ButtonCell”,但是发生了一些奇怪的事情。

  1. ButtonCell 的背景颜色不正确 - 在 ButtonCell“.xib”文件中,我将其设置为蓝色。这适用于第二个 UITableView,但对其他人来说,它只是“白色”。

  2. ButtonCell 不再有“圆角”。

关于如何在任何 UITableViews 中正确“重用”我的自定义按钮单元格的任何想法?

4

1 回答 1

1

听起来你的第二张桌子是分组的,而另外两张是普通的(你会得到带有分组表格视图样式的圆角)。在 IB 中为普通表格设置自定义单元格的颜色不起作用。您应该在 tableView:willDisplayCell:forRowAtIndexPath: 委托方法中设置单元格的颜色:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    cell.backgroundColor = [UIColor colorWithRed:.67 green:.93 blue:1 alpha:1];
}
于 2013-02-09T06:02:31.620 回答