天天看點

關于UIScrollView的alwaysBounceVertical屬性

在iOS開發中,經常會用到UIScrollView控件,比如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;

是以,在程式設計中,實作滾動視圖的下拉和上拉重新整理的時候,就要相應的打開alwaysBounceVertical屬性,才能實作下拉和上拉功能;例如UICollectionView頁面隻有一條資料的時候,内容視圖沒用占據到UICollectionView的整個bounds,目前就無法滾動,這個時候就要設定alwaysBounceVertical為YES,才能在垂直方向實作反彈進而實作上下拉重新整理功能。