是否可以在 UITableView 的某个部分后面使用背景图像?
我想不出如何实现这一目标。
您可以在表格视图后面放置一个视图,将表格视图的背景颜色设置为 [UIColor clearColor],您将看到后面的视图
[self.view addSubview:self.sectionBackgroundView];
[self.view addSubview:self.tableView];
self.tableView.backgroundColor = [UIColor clearColor];
这样做的缺点是,这不仅限于您想要的部分,我能想到的确保此背景视图仅限于一个部分的一种方法是将背景视图的框架调整为滚动表格视图时的部分
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGRect sectionFrame = [self.tableView rectForSection:sectionWithBackground];
self.sectionBackgroundView.frame = sectionFrame;
}
您还需要在开始时执行此操作(可能在 viewWillAppear:) 中,以确保视图正确启动。
要在 UITableView 的部分后面添加背景图像以使其滚动,请在 viewDidAppear 中写入
let frame = tableView.rect(forSection: 0)
let view = UIView(frame: frame)
let imgView = UIImageView(frame: view.bounds)
// Assign image here ...
view.addSubview(imgView)
tableView.addSubview(view)
tableView.sendSubviewToBack(view)
注意:保持表格视图单元格的背景颜色清晰,以便背景视图可见
Swift 5
在表格视图中更新数据后编写以下代码:
let frame = tableView.rect(forSection: 0)
let backgroundView = UIView(frame: frame)
let imageView = UIImageView(frame: view.bounds)
imageView.image = your image
backgroundView.addSubview(imageView)
tableView.addSubview(backgroundView)
tableView.sendSubviewToBack(backgroundView)
tableView.backgroundColor = .clear
之后,您需要willDisplaycell
按照以下方法将单元格置于最前面:
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
tableView.bringSubviewToFront(cell)
}