页脚视图颜色总是比UITableView分隔符颜色更暗

时间:2015-04-08 05:35:33

标签: ios objective-c uitableview

在我的UITableView中,我设置了这样的分隔符颜色:

- (void)viewDidLoad {
  ...
  self.tableView.separatorColor = [UIColor lightGrayColor];
  ...
}

我设置了这样的页脚颜色:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {

  UITableViewHeaderFooterView *footerView = [[UITableViewHeaderFooterView alloc]
                                             initWithFrame:(CGRect){0, 0, 320, 1}];
  footerView.contentView.backgroundColor = [UIColor lightGrayColor];

  return footerView;
}

但是,页脚视图的颜色总是比分隔符的颜色更暗,如下所示:

enter image description here

如何让它们成为完全相同的颜色?感谢。

2 个答案:

答案 0 :(得分:23)

从iOS 6.0开始,您可以使用下面提到的UITableView's委托方法来更改页脚视图的背景颜色 -

- (void)tableView:(UITableView *)tableView willDisplayFooterView:(UIView *)view forSection:(NSInteger)section 
{
    //Set the background color of the View
    view.tintColor = [UIColor blueColor];
}

答案 1 :(得分:0)

以上都不适合我。唯一有效的是这个线程的解决方案:

White Separator Above Table Section Headers

基本上,您需要在自定义页脚视图上方1 px处手动添加页脚分隔符。

-(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    UITableViewHeaderFooterView *versionView = [[UITableViewHeaderFooterView alloc] initWithFrame:CGRectMake(0, 0, maxScreenWidth, 50)];
    UIView *footerSeparator = [[UIView alloc] initWithFrame:CGRectMake(0, -1, maxScreenWidth, 1)];

    versionView.backgroundColor = [UIColor blackColor];
    footerSeparator.backgroundColor = [UIColor darkGrayColor];//Your color

    [versionView addSubview:footerSeparator];
    return versionView;
}

我遇到的唯一问题是,如果您从页面视图中滚动它然后返回到它,则页脚分隔符似乎会消失。