在我的快捷应用程序中,我有一个集合视图,我想在表格视图中创建一个可拉伸的标题视图:https://medium.com/if-let-swift-programming/how-to-create-a-stretchable-tableviewheader-in-ios-ee9ed049aba3
答案 0 :(得分:0)
您已经使用该文章链接自己回答了问题,除非我错过了什么。
如果有帮助,我会为您和可能有相同问题的其他人复制并粘贴,因为它甚至附带github链接(对Abhimuralidharan @ Medium表示敬意):
使用基本数据源和委托方法创建表视图,而简单地将某些数据加载到表中则需要这些方法。
设置表格视图的contentInset属性:
tableView.contentInset = UIEdgeInsetsMake(300, 0, 0, 0)
在这里,我将最高值设置为300,这是一个计算得出的数字,我将其设置为标题imageview的初始正常高度。现在,我们设置了contentInset,表格视图的框架将从(0,0)开始,第一个单元格将从(0,300)开始。
现在,创建一个高度为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)
然后,在滚动视图委托方法scrollViewDidScroll中添加以下代码,该方法在每次滚动表视图时都会调用。
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中找到。