【问题标题】:Scroll TableView inside ScrollView在 ScrollView 中滚动 TableView
【发布时间】:2016-09-14 06:05:53
【问题描述】:

我在scrollView 中有一个tableView

我希望当我滚动tableView 时,外部scrollView 也会滚动。

目前,当我滚动tableView 时,外部scrollView 不滚动。

那么该怎么做呢?

【问题讨论】:

  • 将tableview scrollEnabled设置为NO,并再次计算包含视图高度以适应tableview高度
  • 感谢您的建议,@ABáo
  • scrollView 中将显示多少内容,您不能简单地将headerView 添加到tableView 中吗?
  • 这里只是一个示例,在我的真实项目中,它包含一个可以切换到 4 种模式的容器视图。 scrollView 中的内容取决于其中的tableView

标签: ios objective-c swift uiscrollview


【解决方案1】:

//例如声明要添加的视图为滚动视图

let requiredView = UIScrollView()

//将你需要的视图添加为tableview backgroundView view的子视图,如

tableView.backgroundView = UIView() 
tableView.backgroundView?.addSubview(requiredView)

//之后在scrollViewDidScroll委托方法中控制requiredHeaderView的frame

func scrollViewDidScroll(scrollView: UIScrollView) {
         let per:CGFloat = 60 //percentage of required view to move on while moving collection view
                let deductValue = CGFloat(per / 100 * requiredView.frame.size.height)
                let offset = (-(per/100)) * (scrollView.contentOffset.y)
                let value = offset - deductValue                   
                self.requiredView.contentOffset = CGPointMake(1.0, value)
        }

【讨论】:

  • 滚动tableView时,外层scrollView不滚动。
  • 如果你没有为 scrollView 设置 contentSize 尝试像这样设置 requiredView.contentSize = CGSizeMake(320, 500)
  • 我已经在storyBoard中为scrollView设置了contentSize。
  • 发布有关您如何尝试的代码。这样我就可以提供帮助。
  • 您在哪里尝试过我的答案?scrollViewDidScroll 方法包含与我发布的答案不同的内容。在我的回答中,scrollViewDidScroll 方法中的“值”是用于移动滚动视图的 contentOffset.y 值。这样您就可以相应地滚动滚动视图。
猜你喜欢
  • 1970-01-01
  • 2016-05-13
  • 2020-04-07
  • 2021-10-15
  • 2013-07-26
  • 2016-01-22
  • 1970-01-01
  • 1970-01-01
  • 2021-04-19
相关资源
最近更新 更多