使用 UITableView 自动将 UIImageView 滚动到 UITableView 之上
Scroll a UIImageView on top of UITableView automatically with UITableView
我有一个屏幕,上面有一个 UIImageView,下面有一个 UITableView -
我想在滚动 table 视图时上下移动图像视图,以便 table 视图最终可以占据整个屏幕,然后在滚动时返回到其原始位置table 视图内容一直向后滚动到顶部。到目前为止,我实现了这个 -
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("scrolled")
print(scrollView.contentOffset)
let currentOffset = scrollView.contentOffset.y
let netOffset = previousOffset + currentOffset
self.previousOffset = currentOffset
if netOffset > 0 {
self.imageViewTopConstraint.constant = -netOffset
} else if netOffset < 0 {
self.imageViewTopConstraint.constant = netOffset
} else {
self.imageViewTopConstraint.constant = self.imageViewOriginalTop
self.previousOffset = 0.0
}
}
上面的代码似乎工作正常但是当 table 视图一直向下滚动时,单元格似乎闪烁(可能是因为当 table 查看内容一直向上或向下滚动?)
我该如何解决这个问题?
您可以通过编程方式将 UIImageView 添加为 UITableViewHeader
@IBOutlet weak var tableView: UITableView!
let imageView = UIImageView(image: UIImage(named: "myImage.png"))
imageView.contentMode = .scaleAspectFit
tableView.tableHeaderView = imageView
我有一个屏幕,上面有一个 UIImageView,下面有一个 UITableView -
我想在滚动 table 视图时上下移动图像视图,以便 table 视图最终可以占据整个屏幕,然后在滚动时返回到其原始位置table 视图内容一直向后滚动到顶部。到目前为止,我实现了这个 -
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("scrolled")
print(scrollView.contentOffset)
let currentOffset = scrollView.contentOffset.y
let netOffset = previousOffset + currentOffset
self.previousOffset = currentOffset
if netOffset > 0 {
self.imageViewTopConstraint.constant = -netOffset
} else if netOffset < 0 {
self.imageViewTopConstraint.constant = netOffset
} else {
self.imageViewTopConstraint.constant = self.imageViewOriginalTop
self.previousOffset = 0.0
}
}
上面的代码似乎工作正常但是当 table 视图一直向下滚动时,单元格似乎闪烁(可能是因为当 table 查看内容一直向上或向下滚动?)
我该如何解决这个问题?
您可以通过编程方式将 UIImageView 添加为 UITableViewHeader
@IBOutlet weak var tableView: UITableView!
let imageView = UIImageView(image: UIImage(named: "myImage.png"))
imageView.contentMode = .scaleAspectFit
tableView.tableHeaderView = imageView