我有一個應用程式,它使用了更多UIScrollViews的extensions東西UICollectionViews,UITableViews并且為了一點活力,我創建了一些通用函式來幫助我處理一些填充/邊距。
我的函式是按extensionsfor創建的UIScrollView,我想在滾動視圖為only vertical.
我的問題
如何找到 UIScrollView 的滾動方向?
我找到了很多關于如何找到滾動方向的答案,但是我需要在UIScrollView初始化時找到它的滾動方向,如果它是vertical or horizontal.
感謝您的時間!
uj5u.com熱心網友回復:
為了在滾動之前獲得滾動方向,我可以想到的一種解決方案是對相關 UIScrollView 的型別做出相應的反應。
所以第一步檢查它是 UIScrollView、UICollectionView 還是 UITableView。
在 UITableView 的情況下
我認為這里的一個公平假設是滾動方向是垂直的
在 UIScrollView 的情況下
這可能很棘手,但我想在這里您必須將滾動視圖的內容大小與 Desdenova 建議的滾動視圖的框架進行比較,這可以表明您是否可以水平和/或垂直滾動??。
在 UICollectionView 的情況下
這些資料將位于 UICollectionView 的布局中。
例如,我使用 FlowLayout 在 Storyboard 中設定了一個基本的 UICollectionView,其中沒有任何資料。

然后我在適當的地方添加這段代碼
if let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout
{
if layout.scrollDirection == .horizontal {
print("horizontal")
}
else {
print("vertical")
}
}
這列印出來horizontal。
uj5u.com熱心網友回復:
對于 UIScrollView,你必須使用 UIScrollViewDelegate scrollViewDidScroll ,它可以幫助你在 UIScrollView 的滾動方向上也因為你必須為獲取方向添加一些檢查:
func scrollViewDidScroll(scrollView: UIScrollView!) {
// Update ScrollView direction
if self.lastContentOffset.y > scrollView.contentOffset.y && self.lastContentOffset.y < scrollView.contentOffset.y {
// Vertical Scroll
} else {
// Horizontal Scroll
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/415456.html
標籤:
