[英]Swift - Scroll in Horizontal CollectionView stopped working inside a UIScrollView
這是一個棘手的...
我在一個View Controller里面有一個ScrollView,里面有多個CollectionViews。 為個人資料照片設置了CollectionView,以進行水平滾動。
我希望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中的水平滾動。
有人對我如何實現期望的目標有一些想法嗎?
干杯,亞倫
在您的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的委托。
希望這會幫助你。
我建議您使用UICollectionView
而不是UIScrollView
。 似乎您的水平滾動圖像集合非常相似,因此在邏輯上將每個圖像表示為高級父UICollectionView
的原型單元會更加UICollectionView
。 這也將自然解決滾動問題=)
更准確地說,您將擁有一個父 UICollectionView
,其Scroll方向設置為Vertical,擁有一個UICollectionViewCell
,其內部子 UICollectionView
的Scroll方向設置為Horizontal。
以下是使用情節提要(例如,查看第二個原型單元)如何執行此操作的示例:
就您而言,您只需要在子UICollectionView
填充圖像,而不是在我的示例中使用的標簽。
希望這個能對您有所幫助。 祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.