自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iOS開發(fā)滾動視圖UIScrollView

移動開發(fā) iOS
本文分析了iOS開發(fā)中滾動視圖UIScrollView的原理、簡單使用和運行效果等,讓大家深入理解了滾動視圖UIScrollView的基本原理和用法。

滾動視圖UIScrollView在滾動過程當(dāng)中,其實是在修改坐標(biāo)原點。

當(dāng)手指觸摸 后,ScrollView會暫時攔截觸摸事件,并開啟一個計時器。假如在計時器到點后沒有發(fā)生手指移動事件,那么ScrollView發(fā)送、 tracking events到被點擊的subview;假如在計時器到點前發(fā)生了移動事件,那么ScrollView取消tracking,自己發(fā)生滾動。

初始化

  1. UIScrollView *sv = [[UIScrollView alloc] initWithFrame:CGMakeSize(0.0,0.0,self.view.frame.size.with,600)]; 

一、深入分析UIScrollView

1、由于移動設(shè)備自身的限制,當(dāng)某些視圖滾出可見范圍時,應(yīng)該如何處理,如何重用可視的空間,減少內(nèi)存的開銷。

2、UIScrollView是UITableView和UITextView的超類。它的核心理念:UIScrollView 是一個可以在內(nèi)容視圖之上調(diào)整自己原點坐標(biāo)的視圖。它根據(jù)自身框架的大小,裁剪視圖中的內(nèi)容。通??蚣苁呛蛻?yīng)用程序窗口一樣大??梢愿鶕?jù)手指的移動,調(diào)整 原點的位置,這個原點位置就是滾動視圖的偏移量。展示內(nèi)容的視圖會根據(jù)滾動視圖的原點位置,開始繪制視圖的內(nèi)容。UIScrollView必須知道內(nèi)容視圖的大小,以便于知道什么時候停止,一般當(dāng)滾動出內(nèi)容的邊界時,它就返回了。

UIScrollView必須知道一個觸摸信號是打算滾動還是打算跟蹤里面的子視圖。為了達(dá)到這個目的,它臨時中斷了一個touch-down事件,通過建立一個定時器,在定時器開始行動之前,看是否觸摸的手指做了任何的移動。假如定時器運行中沒有任何的大的位置改變,UIScrollView就發(fā)送一個跟蹤事件給觸摸的子視圖;如果在定時器消失前,用戶拖動手指足夠遠(yuǎn),UIScrollView就取消子視圖的任何跟蹤事件,而滾動它自己。

子類可以通過重載touchesShouldBegin:withEvent:inContentView:、pagingEnabled和touchesShouldCancelInContentView:方法,從而影響滾動視圖的滾動手勢。

UIScrollView 類有一個delegate,需要適配的協(xié)議是UIScrollViewDelegate。為了縮放和平鋪工作,代理必須實現(xiàn) viewForZoomingInScrollView:和scrollViewDidEndZooming:withView:atScale:方法。

在UIScrollView對象中,不應(yīng)該嵌入任何UIWebView和UITableView,否則會出現(xiàn)一些異常情況,因為兩個對象的觸摸事件可能被混合,從而被錯誤的處理。

二、UIScrollView簡單使用

1、拖動一個UIScrollView控件到IB,在上面添加6個標(biāo)簽。設(shè)置第六個標(biāo)簽在可見范圍外,可以直接設(shè)置坐標(biāo)值。如下圖所示:

2、將UIScrollView添加輸出口,設(shè)置為theScroller,其它保留默認(rèn)。

3、支持滾動

為給可滾動視圖添加滾動功能,需要將屬性contentSize設(shè)置為一個CGSize值。CGSize是一個簡單的C語言數(shù)據(jù)結(jié)構(gòu),它包含高度和寬度,可使用函數(shù)CGSize(<with>,<height>)創(chuàng)建一個這樣的對象。

例如要告訴該可滾動視圖(theScroller)可水平和垂直分別滾動到280點和600點,可在viewDidLoad方法中編寫如下代碼:

  1. self.theScroller.contentSize = CGSizeMake(280.0,600.0); 

注:我在測試的時候,沒有添加該行代碼,但是運行的時候仍能滾動。。。

補充:

原來開始我認(rèn)為的滾動,只是bounces(橡皮筋)屬性和IOS 6新增的AutoLayout屬性的作用,設(shè)置了AutoLayout,而bounces屬性默認(rèn)是true的,當(dāng)我按住鍵盤不放,往下滾動的時候,確實可以看到第六個標(biāo)簽。

所以真正要讓ScrollView能夠滾動,還是需要去設(shè)置contentSize的。

4、運行效果

希望通過本文的簡單介紹,讀者朋友們對iOS開發(fā)中滾動視圖UIScrollView有了一個清晰的認(rèn)識和理解。

責(zé)任編輯:閆佳明 來源: oschina
相關(guān)推薦

2011-08-15 11:23:41

iPhone開發(fā)循環(huán)滾動UIScrollVie

2013-07-25 13:35:14

iOS開發(fā)學(xué)習(xí)UIScrollVietouchesBega

2014-06-23 10:42:56

iOS開發(fā)UIScrollVie

2015-01-20 17:15:55

iOS源碼滾動視圖

2013-06-14 13:31:30

iOS開發(fā)移動開發(fā)警告視圖

2011-08-03 17:32:17

IOS UIScrollVi touch

2014-12-17 15:01:01

滾動視圖Instagram源碼

2014-09-02 10:55:25

iOS開發(fā)視圖切換

2015-12-30 14:16:05

iOS動畫視圖渲染

2015-12-23 09:16:33

ios動畫渲染機制

2011-06-15 17:28:23

Qt 多視圖 架構(gòu)

2015-03-03 09:19:12

UIScrollVie

2015-07-13 14:05:32

ios開發(fā)多表視圖

2015-07-06 10:48:56

iOS開發(fā)技巧

2012-05-09 10:58:25

JavaMEJava

2013-06-14 13:50:28

iOS開發(fā)移動開發(fā)警告視圖

2013-01-14 11:40:50

IBMdW

2014-12-31 13:49:34

ScrollViewScroll ViewParallax

2009-08-28 17:51:40

iPhone多視圖開發(fā)

2014-12-31 15:26:57

iOS8iMessageswift
點贊
收藏

51CTO技術(shù)棧公眾號