如何制作可拉伸的标题视图集合视图[Swift]



在我的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中提供了完整的源代码。

相关内容

  • 没有找到相关文章

最新更新