是否可以在UITableView中的某个部分后面使用背景图像?
我无法想到如何实现这一目标。
答案 0 :(得分:5)
您可以在表格视图后面放置一个视图,将表格视图的背景颜色设置为[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 :)中执行此操作,以确保视图正确启动。
答案 1 :(得分:0)
要在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)
注意:保持表格视图单元格的背景颜色清晰,以便可见背景视图
答案 2 :(得分:0)
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)
}