UIScrollView 是UIKit架構裡面開發中使用非常頻繁的控件,也是非常重要的控件.
UIScrollView繼承至UIView,凡事可視組建都是繼承制UIView。
UIScrollView的屬性說明:
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(,,,)];
[self.view addSubView:scrollView];
scrollView.contentSize = CGSizeMake(,);// 設定scrollView的滾動範圍,當contentSize的尺寸未設定或者小于scrollView的邊框時,不能滾動。滾動範圍為contentSize的寬高減去邊框的寬高。
scrollView.clipsToBounds = NO; // 預設此屬性為yes,屬性為YES表示當UIScrollView的滾動範圍超出了邊框的範圍的将被裁減掉。
scrollView.scrollEnable = NO;// 預設為YES,設定不能滾動;
scrollView.bounces = NO; // 預設為YES,為YES表示有滾動的彈簧效果,如果為NO,表示沒有
scrollView.alwaysBounceVertical = yes;預設為NO,設定為YES當下拉、上啦時,可顯示動畫 scrollView.alwaysBounceHorizontal = YES;表示左右滑動的時候有動畫
scrollView.showsHorizontalScrollIndicator = NO;// 預設顯示水準滾動條,設定為NO表示不顯示
scrollView.showVerticalScrollIndicator = NO; // 預設顯示垂直滾動條,設定為NO表示不顯示
**重點内容**
注意:不能通過索引去subViews數組通路scrollViews的字控件
例如:
UIView *view = scrollView.subviews.firstObject;不能這樣實作
因為scrollView上面預設添加了滾動條,實在需要通過索引去通路時,可以先隐藏掉滾動條
// 設定内容的偏移量
// 作用1:控制内容滾動的位置
// 作用2:得知内容滾動的位置
scrollView.contentOffset = CGPointMake(,);
// 通過動畫讓scrollView的内容滾動到指定的位置
[scrollView setContentOffset:CGPointMake(, ) animated:YES];
****重點内容****
OC文法規定:不能修改OC對象的結構體屬性的成員變量;
// 内邊距
scrollView.contentInset = UIEdgeInsetsMake(,,,);
重點内容
關于内邊距:

UIScrollView的代理
常用的代理方法:
#pragma UIScrollViewDelegate
/**
* 當scrollView正在滾動的時候就會調用
*/
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"%s",__func__);
}
/**
* 使用者即将開始拖拽scrollView時就會調用這個方法
*/
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"%s",__func__);
}
/**
* 使用者即将停止拖拽
*/
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
NSLog(@"%s",__func__);
}
/**
* 使用者已經停止拖拽時就會調用這個方法
*/
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
if (decelerate == NO) {
NSLog(@"使用者已經停止拖拽scrollView,停止滾動");
}else{
NSLog(@"使用者已經停止拖拽scrollView,但scrollView 由于慣性繼續滾動");
}
NSLog(@"%s",__func__);
}
/**
* 使用者減速完畢會調用,停止滾動
*/
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"%s", __func__);
}
UIScrollView的縮放子控件
// 1.0設定縮放比例
scrollView.maximumZoomScale = f;
scrollView.minimumZoomScale = f;
// 2.0實作代理的方法
/**
* 傳回需要縮放的子控件(scrollView的子控件)
*/
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return nil;
}
UIScrollView分頁功能
scrollView.pagingEnabled = YES; // 展示分頁功能
// 分頁的标準,以scrollView的标準為一頁