页脚视图的颜色总是比 UITableView 分隔符的颜色深

Posted

技术标签:

【中文标题】页脚视图的颜色总是比 UITableView 分隔符的颜色深【英文标题】:Footer view's color always darker than UITableView separator's color 【发布时间】:2015-04-08 05:35:32 【问题描述】:

在我的 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;

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

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

【问题讨论】:

不是 footerView 分隔符比表格分隔符暗。它的 table 分隔符比 footerView 轻。 TBH,您的页脚分隔符为 lightGrayColor,但单元格分隔符介于“ccc”或“ddd”之间... @PhamHoan 但是我在 viewDidLoad 中明确地将分隔符的颜色设置为浅灰色。 【参考方案1】:

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 px 厚,所以它看起来很暗。谢谢!【参考方案2】:

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

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;

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

【讨论】:

以上是关于页脚视图的颜色总是比 UITableView 分隔符的颜色深的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 编辑附件视图分隔线颜色

指定表格页脚时,最后一个单元格上缺少 uitableview 分隔符

iPad 上的 UITableView 总是灰色的,没有分隔符

将 UITextView 放在 UITableView 页脚中

使用自动布局对 uitableview 页脚视图进行运行时扩展

endUpdates 后的 UITableView 部分页脚视图位置