UIScrollView的基本用法和協議

- (void)viewDidLoad {

[superviewDidLoad];

//創建UIScrollView

UIScrollView* _scrollView = [[UIScrollViewalloc] initWithFrame:CGRectMake(0, 0,self.view.bounds.size.width,self.view.bounds.size.height)];

//將要產生滾動的內容粘貼到滾動視圖上

[_scrollView addSubview:_imageView];

//必須要設置內容滾動區域范圍(要比scrollView 范圍大)

//內容圖片有多大那么滾動區域就設置多大

_scrollView.contentSize = CGSizeMake(15*_scrollView.bounds.size.width, _scrollView.bounds.size.height);

//設置背景

_scrollView.backgroundColor = [UIColorredColor];

//設置是否可以回彈(上下左右)(默認yes)

_scrollView.bounces =NO;

//下面兩個設置的是 水平和豎直方向 是否總是有回彈效果(_scrollView.bounces 必須是YES) 如果沒有設置contentSize也能看到回彈效果

_scrollView.alwaysBounceHorizontal =YES;

_scrollView.alwaysBounceVertical =YES;

//設置(水平、垂直)滾動條的顯示(默認YES)

//隱藏水平滾動條

_scrollView.showsHorizontalScrollIndicator =NO;

//隱藏垂直滾動條

_scrollView.showsVerticalScrollIndicator =NO;

//設置滾動條的風格

_scrollView.indicatorStyle =UIScrollViewIndicatorStyleBlack;

//設置垂直和水平方向的滾動只能有一個生效(默認兩個都可以)

_scrollView.directionalLockEnabled =YES;//是否鎖定

//設置是否可以滾動(默認是YES??? NO不能滾動了)

_scrollView.scrollEnabled =YES;

//設置點擊狀態欄 是否可以把內容滾動到頂部 (默認是YES)

_scrollView.scrollsToTop =YES;

//設置內容偏移量

//實際上就是 滾動視圖左上角坐標 相對于(0,0)內容視圖的坐標系的坐標

//默認是 (0,0)

_scrollView.contentOffset = CGPointMake(100, 100);

//設置放大和縮小(點擊 option 用兩只手指)

//要想實現放大縮小效果必須要遵守協議設置代理

_scrollView.minimumZoomScale = 0.3;

_scrollView.maximumZoomScale = 2.0;

//設置放大(單擊就可)

[_scrollView setZoomScale:1 animated:YES];

//打開翻頁效果

_scrollView.pagingEnabled =YES;

//獲取當前的內容偏移量

CGPoint point =? _scrollView.contentOffset;

//設置內容偏移量

//通過代碼改變移動 不會觸發函數scrollViewDidEndDecelerating

[_scrollView scrollRectToVisible:CGRectMake(page.currentPage*_scrollView.bounds.size.width, 0, _scrollView.bounds.size.width, _scrollView.bounds.size.height) animated:YES];

//設置代理

_scrollView.delegate =self;

}

/*

以后我們經常需要在滾動視圖滾動的時候做一些處理,(下拉刷新)但是,當前界面是接收不到這個滾動的事件的,只有滾動視圖自己知道,所以當前界面要想獲取這個滾動事件,必須要遵守協議 設置代理。

一旦發生滾動 那么滾動視圖 就會把這個事件通知給代理。代理就可以做相應的處理

*/

#pragma mack - 實現協議UIScrollViewDelegate

//設置指定的圖片變形

- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView{

returnscrollView.subviews[0];//通過視圖的子視圖數組得到_imageView

}

//一旦滾動就一直調用 直到停止

- (void)scrollViewDidScroll:(UIScrollView*)scrollView{

}

//將要開始拖拽的時候調用(開始滾動的時候)(手指開始拖拽屏幕的時候)

- (void)scrollViewWillBeginDragging:(UIScrollView*)scrollView{

}

//將要停止拖拽的時候調用

- (void)scrollViewWillEndDragging:(UIScrollView*)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{

}

//已經停止拖拽調用 (手指離開滾動視圖的時候)

- (void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate{

}

//將要開始減速的時候 (手指離開屏幕開始調用)//必須要有減速過程

- (void)scrollViewWillBeginDecelerating:(UIScrollView*)scrollView{

}

//減速到停止的時候(靜止)的時候調用

- (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView{

}

//變形結束調用

- (void)scrollViewDidEndZooming:(UIScrollView*)scrollView withView:(UIView*)view atScale:(CGFloat)scale{

}

//變形開始的時候調用

- (void)scrollViewWillBeginZooming:(UIScrollView*)scrollView withView:(UIView*)view{

}

//變形過程中調用

- (void)scrollViewDidZoom:(UIScrollView*)scrollView{

}

//當點擊狀態欄 回到頂部的時候調用//首先要設置 _scrollView.scrollsToTop = YES;

- (void)scrollViewDidScrollToTop:(UIScrollView*)scrollView{

}

//_scrollView.scrollsToTop = YES;之后 在將要開始滾動到頂部的時候調用下面的函數 如果下面是YES 允許滾動到頂部 NO 是不可以的//_scrollView.scrollsToTop = NO 下面的方法失效

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView*)scrollView{

returnYES;

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • *7月8日上午 N:Block :跟一個函數塊差不多,會對里面所有的內容的引用計數+1,想要解決就用__block...
    炙冰閱讀 2,553評論 1 14
  • 廢話不多說,直接上干貨 ---------------------------------------------...
    小小趙紙農閱讀 3,441評論 0 15
  • 云南,真的是一個讓人艷遇的地方嗎? 不在麗江 也不在大理 行走茶山路 舌尖味蕾的旅行 在這片熱情的土地上 生普也可...
    張梓荷閱讀 188評論 0 0
  • 這一天,小猴子和小烏龜在河邊玩耍。小猴子突然在小烏龜身后使勁地踢了他一腳。小烏龜便咕嚕咕嚕地滾了下去,又咕嚕咕嚕地...
    枝樓閱讀 574評論 0 0
  • 無論在任何海拔高度360度環繞觀察,地平線總是顯示是完全平的。 所有的業余愛好者利用高空氣球、火箭、飛機、無人駕駛...
    Isaac_I_am_OK閱讀 34,454評論 6 6