这是一个棘手的问题......
我在View Controller中有一个ScrollView,里面有多个CollectionViews。 CollectionViews设置用于水平滚动的个人资料照片。
我希望ScrollView滚动垂直,但不能滚动。我使用以下代码使用ScrollView执行此操作:
func scrollViewDidScroll(scrollView: UIScrollView) {
if scrollView.contentOffset.x>0 {
scrollView.contentOffset.x = 0
}
if scrollView.contentOffset.x < 0 {
scrollView.contentOffset.x = 0
}
}
这按预期工作,我使用UIScrollViewDelegate并将ScrollView设置为:
self.scrollView.delegate = self
现在棘手的部分...... CollectionViews不再水平滚动。我假设这是因为父ScrollView正在接管视图,和/或上面的代码也阻止了CollectionViews中的水平滚动。
任何人都对我如何实现我的目标有一些想法?
干杯, 亚伦
答案 0 :(得分:2)
在scrollViewDidScroll方法
中尝试这样的方法func scrollViewDidScroll(scrollView: UIScrollView) {
if (scrollView == self.scrollView) {
if scrollView.contentOffset.x>0 {
scrollView.contentOffset.x = 0
}
if scrollView.contentOffset.x < 0 {
scrollView.contentOffset.x = 0
}
}
}
因为collectionView也有scrollView的委托 希望这会对你有所帮助。
答案 1 :(得分:0)
我建议您使用UICollectionView
代替UIScrollView
。看起来您的水平滚动图像集非常相似,因此将每个图像表示为高级父UICollectionView
的原型单元更为逻辑。这也将以自然的方式修复您的滚动问题=)
更准确地说,您将有一个父 UICollectionView
,其滚动方向设置为垂直,拥有内部子 {UICollectionViewCell
UICollectionView
{1}}将滚动方向设置为水平。
以下是如何使用故事板(查看第二个原型单元格)来执行此操作的示例:
在您的情况下,您只需要使用图片填充孩子UICollectionView
,而不是我的示例中使用的标签。
希望,这会对你有所帮助。祝你好运!