UICollectionView不響應scrollViewDidScroll方法,看向alwaysBounceVertical這個屬性!

滾動視圖我們常用的:UIScrollView,UICollectionView,UITableView

@property(nonatomic) BOOL bounces;  // default YES. if YES, bounces past edge of content and back again
@property(nonatomic) BOOL alwaysBounceVertical; // default NO. if YES and bounces is YES, even if content is smaller than bounds, allow drag vertically
@property(nonatomic) BOOL alwaysBounceHorizontal; // default NO. if YES and bounces is YES, even if content is smaller than bounds, allow drag horizontally

bounces默認是YES,用來控制滾動視圖是否反彈,當它爲NO的時候,其他兩個屬性值設置無效,滾動視圖無法反彈;只有當bounces是YES的時候,其他兩個屬性設置纔有效.
alwaysBounceVertical設置垂直方向的反彈是否有效,
alwaysBounceHorizontal設置水平方向的反彈是否有效;

重點來了!!

UITableView默認情況下alwaysBounceVertical是YES,alwaysBounceHorizontal是NO;
UIScrollView和UICollectionView默認情況下alwaysBounceVertical和alwaysBounceHorizontal都是NO;

但是當內容視圖的尺寸超過了自己的bounds的尺寸的時候,相應方向上反彈屬性會自動設置爲YES;


問題

之前沒注意這個屬性的時候,就導致,例如UICollectionView頁面只有一條數據的時候,內容視圖沒用佔據到UICollectionView的整個bounds,當前就無法滾動,導致頁面不響應下面方法,視圖聯動的邏輯就寫不出來。
在這裏插入圖片描述

解決

這個時候就要設置alwaysBounceVertical爲YES,才能在垂直方向上響應到滾動相關的方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章