设置一个UIView的背景颜色很简单,就是设置它的UIColor *backgroundColor
属性。
这天,产品拿着手机过来对我说,我们的列表相关的背景颜色要统一一下,那简答啊,不就是搞个backgroundColor吗,分分钟搞定。
等会这货又拿着手机过来告诉我这里的背景颜色没有变,我一看竟然没坑我,是真的。需求颜色是tableView底部上拉那种灰色,如图:
但是在这个页面,碰到顶部下拉部分却不是设置好的灰色,而是默认的group下的那个背景颜色,如图:
纳闷的我查看了其他页面tableView的背景颜色,发现没有啥问题,坑爹呢!闷闷的再翻动几个页面,难道是顶部搜索框导致的!仔细一看,没有搜索框的tableView背景颜色都是OK的。
知道问题在哪,就改动。
看来下层级关系
这一块是属于UITableView的,索性遍历subViews,全部设置红色看看,竟然没有效果。。。。。。。。。。。。。。。。。。
直接点进去UITableView的.h文件翻起来,看到这个没有
@property (nonatomic, strong, nullable) UIView *backgroundView NS_AVAILABLE_IOS(3_2); // the background view will be automatically resized to track the size of the table view. this will be placed as a subview of the table view behind all cells and headers/footers. default may be non-nil for some devices.
不出意外,经验告诉我就是它了,直接创建一个红色的UIView给它,过去可以,即使有搜索框存在,背景颜色仍然是一致的!
UIView *tableBackgroundView = [[UIView alloc]initWithFrame:self.tableview.bounds];
tableBackgroundView.backgroundColor = [UIColor whiteColor];
self.tableview.backgroundView = tableBackgroundView;