UIScrollView用於顯示多於一個屏幕的內容或者超過你能放在內存中的內容。
其中需要注意的子類是UITableView, UICollectionView 以及UITextView(用來顯示大量的文字)。還有一個UIWebView,儘管那不是UIScrollView的直接子類,它適用UIScrollView去顯示網頁內容.
• 如果UIScrollView⽆法滾動,可能是以下原因:
➢ 沒有設置contentSize
(contentsize是內容的寬和高,contentsize.width是內容的寬度,contentsize.heght是高度,contentsize是UIScrollView的一個屬性,它是一個CGSize,是由核心圖形所定義的架構,定義了可以滾動內容的寬度和高度,也可以添加可以上下滾動的額外區域。)
- ➢scrollEnabled = NO
- ➢ 沒有接收到觸摸事件:userInteractionEnabled = NO
➢ 沒有取消autolayout功能(要想scrollView滾動,必須取消autolayout)
UIScrollView的常見屬性
• @property(nonatomic)CGPointcontentOffset;
➢ 這個屬性⽤用來表⽰示UIScrollView滾動的具體位置(偏移量),可以自己獲取和設置
•
@property(nonatomic)CGSizecontentSize;
➢
這個屬性⽤用來表⽰示UIScrollView內容的尺⼨寸,滾動範圍(能滾多遠)
•
@property(nonatomic)UIEdgeInsetscontentInset;
➢
這個屬性能夠在UIScrollView的4周增加額外的滾動區域
UIScrollView的其他屬性
•
@property(nonatomic)
BOOL bounces;
•
設置UIScrollView是否需要彈簧效果
•@property(nonatomic,getter=isScrollEnabled)BOOLscrollEnabled;
➢設置UIScrollView是否能滾動
•
@property(nonatomic)
BOOL bounces;
設置UIScrollView是否需要彈簧效果
•
@property(nonatomic,getter=isScrollEnabled)BOOLscrollEnabled;
設置UIScrollView是否能滾動
@property(nonatomic)
BOOL showsHorizontalScrollIndicator;
是否顯⽰⽔平滾動條
@property(nonatomic)
BOOL showsVerticalScrollIndicator;
是否顯示垂直滾動條
當⽤戶在UIScrollView⾝上使用捏合⼿勢時,UIScrollView會調⽤代理的
viewForZoomingInScrollView:⽅法,這個⽅法返回的控件就是需要進行縮放的子控件
縮放實現步驟
-
設置UIScrollView的id<UISCrollViewDelegate> delegate代理對象
-
設置minimumZoomScale :縮小的最小比例
-
設置maximumZoomScale :放大的最大比例
4. 讓代理對象實現下⾯的方法,返回需要縮放的視圖控件
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
跟縮放相關的其他代理方法
縮放完畢的時候調⽤
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView
withView:(UIView *)view
正在縮放的時候調⽤
- (void)scrollViewDidZoom:(UIScrollView *)scrollView