我正在尝试向我的表添加一个背景视图,该视图应该在大小上拉伸以在旋转时始终填充表格的框架。为了简化问题,我只是尝试在表格视图中添加红色UIVIew
,然后使用自动布局以确保红色视图始终填充整个可见背景。如果我没有实现自动布局,旋转时您可以看到红色不再填充屏幕上的可见区域。但是当我使用下面的代码实现自动布局时,屏幕上不再显示红色视图。我只看到默认的表格视图backgroundColor
。为什么,我的自动布局代码出了什么问题?
UIView *view = [[UIView alloc] initWithFrame:self.tableView.frame];
view.backgroundColor = [UIColor redColor];
[self.tableView addSubview:view];
[self.tableView sendSubviewToBack:view];
[view setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.tableView addConstraint:[NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.tableView
attribute:NSLayoutAttributeTop
multiplier:1
constant:0]];
[self.tableView addConstraint:[NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.tableView
attribute:NSLayoutAttributeBottom
multiplier:1
constant:0]];
[self.tableView addConstraint:[NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeLeading
relatedBy:NSLayoutRelationEqual
toItem:self.tableView
attribute:NSLayoutAttributeLeading
multiplier:1
constant:0]];
[self.tableView addConstraint:[NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeTrailing
relatedBy:NSLayoutRelationEqual
toItem:self.tableView
attribute:NSLayoutAttributeTrailing
multiplier:1
constant:0]];
答案 0 :(得分:0)
您应该将backgroundView属性用于表视图。只需使用alloc init创建视图(不需要框架或约束),并将该视图设置为表视图的背景视图,
UIView *view = [[UIView alloc] init];
view.backgroundColor = [UIColor redColor];
self.tableView.backgroundView = view;
除非您的单元格清晰,否则在向下拉视图或将其滚动到底部之前,您将看不到此视图。