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

Flutter 实现背景 Parallax 动画

parallax corrected cubemap

Parallax Mapping

java Parallax RecyclerViewScrolling

html Pure Parallax CSS