在我的swift应用程序中,我有一个集合视图,我想在表视图中创建一个可拉伸的头视图,如下所示:https://medium.com/if-let-swift-programming/how-to-create-a-stretchable-tableviewheader-in-ios-ee9ed049aba3
您已经用文章链接自己回答了您的问题,除非我遗漏了什么。
我将复制&为你和其他可能有同样问题的人粘贴,如果它有帮助的话,因为它甚至附带了github链接(向Abhimuralidharan@Medium致敬):
使用基本数据源和委托方法创建一个表视图,这些方法是简单地加载带有一些数据的表所必需的。
设置表视图的contentInset属性:
tableView.contentInset = UIEdgeInsetsMake(300, 0, 0, 0)
这里,我将顶部值设置为300,这是一个计算出的数字,我将其设置为页眉图像视图的初始正常高度。现在,我们设置了contentInset,表视图的帧将从(0,0)开始,第一个单元格将从(0300)开始。
现在,创建一个高度为300的图像视图,并将其添加到表视图上方的当前视图中。
imageView.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: 300)
imageView.image = UIImage.init(named: “poster”)
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
view.addSubview(imageView)
然后,在每次滚动表视图时调用的scrollview委托方法scrollViewDidSoll中添加以下代码。
func scrollViewDidScroll (_ scrollView: UIScrollView) {
let y = 300 — (scrollView.contentOffset.y + 300)
let height = min(max(y, 60), 400)
imageView.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: height)
}
编译并运行代码。github中提供了完整的源代码。