UIScrollView與UIScrollViewDelegate

  • UIScrollView 的contentSize:設(shè)置UIScrollView的內(nèi)容尺寸大小
  • UIScrollView的frame :設(shè)置UIScrollView的位置和尺寸
  • UIScrollView的contentInset:該屬性是一個UIEdeInsets類型的值,UIEdeInsets并不是一個類返咱,而是一個結(jié)構(gòu)體砚哗,它包含top、left砸捏、buttom衷恭、right四個成員變量勿璃,分別代表UIScrollView所需要顯示內(nèi)容在上揭璃、下、左悔雹、右的留白复哆。
  • UIScrollView的contentOffset:該屬性

UIScrollView的一些屬性值

tracking

當(dāng) touch 后還沒有拖動的時候值是YES,否則NO

scroller.pagingEnabled=YES;

UIScrollView會被分割成多個獨立頁面腌零,用戶的滾動體驗則變成了頁面翻轉(zhuǎn)

zoomBouncing

當(dāng)內(nèi)容放大到最大或者最小的時候值是 YES梯找,否則 NO

zooming

當(dāng)正在縮放的時候值是 YES,否則 NO

decelerating

當(dāng)滾動后益涧,手指放開但是還在繼續(xù)滾動中锈锤。這個時候是 YES,其它時候是 NO

decelerationRate

設(shè)置手指放開后的減速率

maximumZoomScale

一個浮點數(shù)饰躲,表示能放最大的倍數(shù)

minimumZoomScale

一個浮點數(shù)牙咏,表示能縮最小的倍數(shù)

pagingEnabled

當(dāng)值是 YES 會自動滾動到 subview 的邊界臼隔。默認是NO

scrollEnabled

決定是否可以滾動

delaysContentTouches

是個布爾值嘹裂,當(dāng)值是 YES 的時候,用戶觸碰開始摔握,scroll view要延遲一會寄狼,看看是否用戶有意圖滾動。假如滾動了氨淌,那么捕捉 touch-down 事件泊愧,否則就不捕捉。假如值是NO盛正,當(dāng)用戶觸碰删咱, scroll view 會立即觸發(fā) touchesShouldBegin:withEvent:inContentView:,默認是 YES

canCancelContentTouches

當(dāng)值是 YES 的時候豪筝,用戶觸碰后痰滋,然后在一定時間內(nèi)沒有移動,scrollView 發(fā)送 tracking events续崖,然后用戶移動手指足夠長度觸發(fā)滾動事件敲街,這個時候,scrollView 發(fā)送了 touchesCancelled:withEvent: 到 subview严望,然后 scroView 開始滾動多艇。假如值是 NO,scrollView 發(fā)送 tracking events 后像吻,就算用戶移動手指峻黍,scrollView 也不會滾動复隆。

contentSize

里面內(nèi)容的大小,也就是可以滾動的大小姆涩,默認是0昏名,沒有滾動效果。

showsHorizontalScrollIndicator

滾動時是否顯示水平滾動條

showsVerticalScrollIndicator

滾動時是否顯示垂直滾動條

bounces(彈簧效果)

默認是 yes阵面,就是滾動超過邊界會反彈有反彈回來的效果轻局。假如是 NO,那么滾動到達邊界會立刻停止样刷。

bouncesZoom

和 bounces 類似,區(qū)別在于:這個效果反映在縮放上面仑扑,假如縮放超過最大縮放,那么會反彈效果置鼻;假如是 NO镇饮,則到達最大或者最小的時候立即停止。

directionalLockEnabled

默認是 NO箕母,可以在垂直和水平方向同時運動储藐。當(dāng)值是 YES 時,假如一開始是垂直或者是水平運動嘶是,那么接下來會鎖定另外一個方向的滾動钙勃。 假如一開始是對角方向滾動,則不會禁止某個方向

indicatorStyle

滾動條的樣式聂喇,基本只是設(shè)置顏色辖源。總共3個顏色:默認希太、黑克饶、白

scrollIndicatorInsets

設(shè)置滾動條的位置

UIScrollerViewDelegate代理方法

<pre>
//scrollView滾動時,就調(diào)用該方法誊辉。任何offset值改變都調(diào)用該方法矾湃。即滾動過程中,調(diào)用多次

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

    NSLog(@"scrollViewDidScroll");
    CGPoint point=scrollView.contentOffset;
    NSLog(@"%f,%f",point.x,point.y);
    // 從中可以讀取contentOffset屬性以確定其滾動到的位置堕澄。

    // 注意:當(dāng)ContentSize屬性小于Frame時邀跃,將不會出發(fā)滾動

}
</pre>
<pre>
// 當(dāng)scrollView縮放時,調(diào)用該方法奈偏。在縮放過程中坞嘀,回多次調(diào)用

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

    NSLog(@"scrollViewDidScroll");
    float value=scrollView.zoomScale;
    NSLog(@"%f",value);

}
</pre>
<pre>
// 當(dāng)開始滾動視圖時,執(zhí)行該方法惊来。一次有效滑動(開始滑動丽涩,滑動一小段距離,只要手指不松開,只算一次滑動)矢渊,只執(zhí)行一次继准。

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

    NSLog(@"scrollViewWillBeginDragging");

}
</pre>
<pre>
// 滑動scrollView,并且手指離開時執(zhí)行矮男。一次有效滑動移必,只執(zhí)行一次。
// 當(dāng)pagingEnabled屬性為YES時毡鉴,不調(diào)用崔泵,該方法

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

    NSLog(@"scrollViewWillEndDragging");

}
</pre>
<pre>
// 滑動視圖,當(dāng)手指離開屏幕那一霎那猪瞬,調(diào)用該方法憎瘸。一次有效滑動,只執(zhí)行一次陈瘦。
// decelerate,指代幌甘,當(dāng)我們手指離開那一瞬后,視圖是否還將繼續(xù)向前滾動(一段距離)痊项,經(jīng)過測試锅风,decelerate=YES

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

    NSLog(@"scrollViewDidEndDragging");
    if (decelerate) {
    NSLog(@"decelerate");
    }else{
    NSLog(@"no decelerate");

    }

    CGPoint point=scrollView.contentOffset;
    NSLog(@"%f,%f",point.x,point.y);

}
</pre>
<pre>
// 滑動減速時調(diào)用該方法。

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

    NSLog(@"scrollViewWillBeginDecelerating");
    // 該方法在scrollViewDidEndDragging方法之后鞍泉。

}
</pre>
<pre>
// 滾動視圖減速完成皱埠,滾動將停止時,調(diào)用該方法塞弊。一次有效滑動漱逸,只執(zhí)行一次泪姨。

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

    NSLog(@"scrollViewDidEndDecelerating");

    [_scrollView setContentOffset:CGPointMake(0, 500) animated:YES];

}
</pre>
<pre>
// 當(dāng)滾動視圖動畫完成后游沿,調(diào)用該方法,如果沒有動畫肮砾,那么該方法將不被調(diào)用

  • (void)scrollViewDidEndScrollingAnimation:(UIScrollView\ *)scrollView{

    NSLog(@"scrollViewDidEndScrollingAnimation");
    // 有效的動畫方法為:
    // - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated 方法
    // - (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated 方法

}
</pre>

<pre>
// 返回將要縮放的UIView對象诀黍。要執(zhí)行多次

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

    NSLog(@"viewForZoomingInScrollView");
    return self.imgView;

}
</pre>
<pre>
// 當(dāng)將要開始縮放時,執(zhí)行該方法仗处。一次有效縮放眯勾,就只執(zhí)行一次。

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

    NSLog(@"scrollViewWillBeginZooming");

}
</pre>
<pre>
// 當(dāng)縮放結(jié)束后婆誓,并且縮放大小回到minimumZoomScale與maximumZoomScale之間后(我們也許會超出縮放范圍)吃环,調(diào)用該方法。

  • (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{

    NSLog(@"scrollViewDidEndZooming");

}
</pre>
<pre>
// 指示當(dāng)用戶點擊狀態(tài)欄后洋幻,滾動視圖是否能夠滾動到頂部郁轻。
//如果你不是完全滾動到滾軸視圖的頂部,你可以輕點狀態(tài)欄,那個可視的滾軸視圖會一直滾動到頂部好唯,那是默認行為竭沫,你可以通過該方法返回NO來關(guān)閉它
//需要設(shè)置滾動視圖的屬性:_scrollView.scrollsToTop=YES;

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

    return YES;

}
</pre>
<pre>
// 當(dāng)滾動視圖滾動到最頂端后,執(zhí)行該方法

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

    NSLog(@"scrollViewDidScrollToTop");
    }
    </pre>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骑篙,一起剝皮案震驚了整個濱河市蜕提,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌靶端,老刑警劉巖谎势,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異杨名,居然都是意外死亡它浅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門镣煮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姐霍,“玉大人,你說我怎么就攤上這事典唇∧髡郏” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵介衔,是天一觀的道長恨胚。 經(jīng)常有香客問我,道長炎咖,這世上最難降的妖魔是什么赃泡? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮乘盼,結(jié)果婚禮上升熊,老公的妹妹穿的比我還像新娘。我一直安慰自己绸栅,他們只是感情好级野,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著粹胯,像睡著了一般蓖柔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上风纠,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天况鸣,我揣著相機與錄音,去河邊找鬼竹观。 笑死镐捧,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播愤估,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼帮辟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了玩焰?” 一聲冷哼從身側(cè)響起由驹,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昔园,沒想到半個月后蔓榄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡默刚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年甥郑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荤西。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡澜搅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出邪锌,到底是詐尸還是另有隱情勉躺,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布觅丰,位于F島的核電站饵溅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏妇萄。R本人自食惡果不足惜蜕企,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望冠句。 院中可真熱鬧轻掩,春花似錦、人聲如沸轩端。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽基茵。三九已至,卻和暖如春壳影,著一層夾襖步出監(jiān)牢的瞬間拱层,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工宴咧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留根灯,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像烙肺,于是被迫代替她去往敵國和親纳猪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容