Swift - Parallax Header View - ScrollView 重叠单元格
Posted
技术标签:
【中文标题】Swift - Parallax Header View - ScrollView 重叠单元格【英文标题】:Swift - Parallax Header View - ScrollView overlap cells 【发布时间】:2016-07-26 17:57:47 【问题描述】:我正在尝试为 Parallax Header 自定义扩展。但是,它并不完美。表格标题视图始终浮动并与单元格重叠。
扩展代码:
extension UITableView
func addImageHeaderView(headerView headerView: UIView, height: CGFloat)
self.contentInset = UIEdgeInsetsMake(height, 0, 0, 0)
self.contentOffset = CGPoint(x: 0, y: -height)
self.tableHeaderView = headerView
self.tableHeaderView?.frame = CGRect(x: 0, y: 0, width: self.bounds.width, height: height)
func updateHeaderView(height kTableHeaderHeight: CGFloat)
var headerRect = CGRect(x: 0, y: -kTableHeaderHeight , width: self.bounds.width, height: kTableHeaderHeight)
if self.contentOffset.y < -kTableHeaderHeight
headerRect.origin.y = self.contentOffset.y
headerRect.size.height = -self.contentOffset.y
self.tableHeaderView?.frame = headerRect
实现代码:
tableView.addImageHeaderView(headerView: viewHeader, height: 100)
func scrollViewDidScroll(scrollView: UIScrollView)
tableView.updateHeaderView(height: 200)
我错了吗?如果你知道,请告诉我。
【问题讨论】:
【参考方案1】:您能否尝试在 viewDidLoad
中设置以下内容self.edgesForExtendedLayout = UIEdgeInsetsZero;
迅速
self.edgesForExtendedLayout = .None
您还可以尝试检查以下结果
tableView.addImageHeaderView(headerView: viewHeader, height: 0)
func scrollViewDidScroll(scrollView: UIScrollView)
tableView.updateHeaderView(height: 200)
请注意我将高度从 100 更改为 0 我这样做是因为高度值会改变表格视图的 contentInset,这正是与顶角的距离
【讨论】:
无法将“UIEdgeInsets”类型的值分配给“UIRectEdge”类型。收到此错误。 谢谢!我找到了,但没有效果。 :| 你能试试下面的方法吗: self.contentInset = UIEdgeInsetsMake(0, 0, 0, 0) self 是你的tableView,当你改变它的contentSet时,它将是与顶部的距离 func addImageHeaderView(headerView headerView: UIView, height: CGFloat) self.contentInset = UIEdgeInsetsMake(0, 0, 0, 0) ... 是吗? 让我们continue this discussion in chat。以上是关于Swift - Parallax Header View - ScrollView 重叠单元格的主要内容,如果未能解决你的问题,请参考以下文章
php 在任何创世纪主题中应用Parallax Pro的视差效果。 http://sridharkatakam.com/apply-parallax-effect-parallax-pro-genes