滚动时自定义scrollView,移动标题视图

时间:2016-04-19 06:36:51

标签: ios iphone swift uitableview uiscrollview

我有一个问题,就像这张照片 User Profile View

在Apple文档中,他们说没有将UITableView添加到UIScrollView,但现在我需要这样做..?有人有个好主意吗?

谢谢

3 个答案:

答案 0 :(得分:2)

问题有点复杂。有不同的方法可以解决这个问题,但没有一个方法容易。

您可以在scrollview(嵌套技术)中添加表视图,但如果您尝试滚动它将感觉不自然。要改善用户体验,您需要实现scrollview委托方法并应用一些内部逻辑。所有这些技术都在两个wwdc 2013-14视频herehere中进行了解释,但我强烈建议您同时观看2011-12的早期会议,以释放滚动视图的强大功能。
最好的方法是使用自定义布局实现UICollectionView,这也在wwdc 2014的Advanced collection view user interfaces中进行了解释,在这些会话中,Apple解释了他们如何开发包含浮动标题的AppStore应用程序。
另一个解决方案是在github上搜索,你可以找到CSSStickyHeaderFlowLayout或类似的解决方案。
如果您只需要使用自动布局向滚动视图添加标题(不嵌套另一个滚动视图),则可以应用最后一个。

答案 1 :(得分:1)

您附加的布局图像,其类型的paralax控件。

我之前有过某种布局,可以轻松配置。

https://github.com/Vinodh-G/ParallaxTableViewHeader

 let headerView : ParallaxHeaderView = ParallaxHeaderView.parallaxHeaderViewWithImage(UIImage(named: ""), forSize: CGSizeMake(self.tableview.frame.size.height, headerHeight)) as! ParallaxHeaderView

 self.tableview.tableHeaderView = headerView


func  scrollViewDidScroll(scrollView: UIScrollView) {

    let header: ParallaxHeaderView = self.tabkeview.tableHeaderView as! ParallaxHeaderView
    header.layoutHeaderViewForScrollViewOffset(scrollView.contentOffset)

    self.tableview.tableHeaderView = header



}

答案 2 :(得分:0)

我不知道任何swift自定义库,但从概念上讲,我认为你可以使用浮动标题视图。我知道2个项目在obectiveC中你可以在你的快速项目中架起桥梁:

这两个项目,在您的表中添加此自定义标题视图后,自定义滚动委托方法,您可以为您的个人目的覆盖这些方法。