在 ScrollView 中滚动 TableView
Posted
技术标签:
【中文标题】在 ScrollView 中滚动 TableView【英文标题】:Scroll TableView inside ScrollView 【发布时间】:2016-09-14 06:05:53 【问题描述】:我在scrollView
中有一个tableView
。
我希望当我滚动tableView
时,外部scrollView
也会滚动。
目前,当我滚动tableView
时,外部scrollView
不滚动。
那么该怎么做呢?
【问题讨论】:
将tableview scrollEnabled设置为NO,并再次计算包含视图高度以适应tableview高度 感谢您的建议,@ABáoscrollView
中将显示多少内容,您不能简单地将headerView
添加到tableView
中吗?
这里只是一个示例,在我的真实项目中,它包含一个可以切换到 4 种模式的容器视图。 scrollView
中的内容取决于其中的tableView
。
【参考方案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 值。这样您就可以相应地滚动滚动视图。以上是关于在 ScrollView 中滚动 TableView的主要内容,如果未能解决你的问题,请参考以下文章