- contentSize: 內容大小,設置了纔可以滾動
- contentOffset: 內容偏移位置
- contentInset: 內容間距
- pagingEnabled: 是否允許分頁
- bounces: 是否允許彈簧效果
- showsHorizontalScrollIndicator: 是否允許顯示水平指示器(滾動條)
- showsVerticalScrollIndicator: 是否允許顯示垂直指示器(滾動條)
@property(nonatomic) CGPoint contentOffset;
@property(nonatomic) CGSize contentSize;
@property(nonatomic) UIEdgeInsets contentInset;
@property(nullable,nonatomic,weak) id<UIScrollViewDelegate> delegate;
要想監聽滾動視圖的滾動 / 拖拽 / 縮放 / 狀態欄交互
需要設置 delegate
實現相關協議方法
@property(nonatomic) BOOL bounces;
@property(nonatomic) BOOL alwaysBounceVertical;
@property(nonatomic) BOOL alwaysBounceHorizontal;
@property(nonatomic,getter=isPagingEnabled) BOOL pagingEnabled __TVOS_PROHIBITED;
@property(nonatomic) BOOL showsHorizontalScrollIndicator;
@property(nonatomic) BOOL showsVerticalScrollIndicator;
@property(nonatomic) UIEdgeInsets scrollIndicatorInsets;
@property(nonatomic) UIScrollViewIndicatorStyle indicatorStyle;
在 scrollView 中指示器本質上就是 UIImageView
通過查看視圖層次結構可以看到
@property(nonatomic) CGFloat minimumZoomScale;
@property(nonatomic) CGFloat maximumZoomScale;
要允許縮放
必須設置以上兩個屬性
同時遵守協議
實現協議方法 -viewForZoomingInScrollView:
@property(nonatomic) BOOL scrollsToTop __TVOS_PROHIBITED;
一個視圖中,如果有多個 scrollView
只有唯一一個 scrollView 的 scrollsToTop 屬性設置爲 YES,才支持點擊狀態欄滾動到頂部
@property(nonatomic) UIScrollViewKeyboardDismissMode keyboardDismissMode NS_AVAILABLE_IOS(7_0);
如果是 UITextView,通常需要將 alwaysBounceVertical 屬性設置爲 YES
typedef NS_ENUM(NSInteger, UIScrollViewKeyboardDismissMode) {
UIScrollViewKeyboardDismissModeNone,
UIScrollViewKeyboardDismissModeOnDrag,
UIScrollViewKeyboardDismissModeInteractive,
} NS_ENUM_AVAILABLE_IOS(7_0);
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated;
- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated;