gpt4 book ai didi

ios - 如何删除 UITableView 上方的空白区域?

转载 作者:行者123 更新时间:2023-11-30 13:42:42 26 4
gpt4 key购买 nike

所以我使用 UITableView 来显示有关不同电影的信息。

在 VC 的顶部,我有一个 UIImage,它位于 UIView 内部。然后我的 table 就坐在下面。该表格当前位于图像底部的正上方(这就是我想要的),如下所示:

enter image description here

问题

我按照教程添加了一个简单的效果,因此当用户在 tableView 上下拉时,图像会放大。您可以通过查看此处的教程来了解我的意思:See here

这一切都非常有效,给了我想要的效果,但是,它现在在图像下方添加了一个空白区域,请参见下图:

enter image description here

一切仍然工作正常,并且效果按预期工作,但是现在这个空间就在那里 - 我真的不想要。

该 VC 的 Storyboard 中的设置如下:

enter image description here

我添加的实现效果的代码如下:

private let KTableHeaderHeight: CGFloat = 160.0 // which is the height of my UIImage
var headerView: UIView!

override func viewDidLoad() {

super.viewDidLoad()

headerView = tableView.tableHeaderView
tableView.tableHeaderView = nil
tableView.addSubview(headerView)

tableView.contentInset = UIEdgeInsets(top: KTableHeaderHeight, left: 0, bottom: 0, right: 0)
tableView.contentOffset = CGPoint(x: 0, y: -KTableHeaderHeight)
updateHeaderView()

}

然后:

func updateHeaderView() {

var headerRect = CGRect(x: 0, y: -KTableHeaderHeight, width: tableView.bounds.width, height: KTableHeaderHeight)
if tableView.contentOffset.y < -KTableHeaderHeight {

headerRect.origin.y = tableView.contentOffset.y
headerRect.size.height = -tableView.contentOffset.y

}

headerView.frame = headerRect

}

override func scrollViewDidScroll(scrollView: UIScrollView) {

updateHeaderView()

}

如果我注释掉我添加的所有代码,它看起来又很好,所以我猜测是这段代码导致了空格。

我真的很想了解为什么会形成这个间隙,以及如何消除它,仍然使用添加的代码来实现图像放大效果。

更新

我的 UIImageView 布局属性:

enter image description here

最佳答案

您的问题可能是 private let KTableHeaderHeight: CGFloat = 160.0 行,它不等于 header 中 imageView 的高度。

需要找出缩放后imageView的固定高度,可以通过原始图像高度乘以 View 宽度/原始图像宽度得到,并设置imageView height 和 private var KTableHeaderHeight: CGFloat 为该值。

关于ios - 如何删除 UITableView 上方的空白区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35380409/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com