偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

初始化

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

一、深入分析UIScrollView

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

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

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

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

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

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

二、UIScrollView簡單使用

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

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

3、支持滾動(dòng)

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

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

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

注:我在測試的時(shí)候,沒有添加該行代碼,但是運(yùn)行的時(shí)候仍能滾動(dòng)。。。

補(bǔ)充:

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

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

4、運(yùn)行效果

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

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

2011-08-15 11:23:41

iPhone開發(fā)循環(huán)滾動(dòng)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源碼滾動(dòng)視圖

2013-06-14 13:31:30

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

2011-08-03 17:32:17

IOS UIScrollVi touch

2014-12-17 15:01:01

滾動(dòng)視圖Instagram源碼

2014-09-02 10:55:25

iOS開發(fā)視圖切換

2011-06-15 17:28:23

Qt 多視圖 架構(gòu)

2015-12-23 09:16:33

ios動(dòng)畫渲染機(jī)制

2015-12-30 14:16:05

iOS動(dòng)畫視圖渲染

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ā)移動(dòng)開發(fā)警告視圖

2013-01-14 11:40:50

IBMdW

2014-12-31 13:49:34

ScrollViewScroll ViewParallax

2014-12-31 15:26:57

iOS8iMessageswift

2009-08-28 17:51:40

iPhone多視圖開發(fā)
點(diǎn)贊
收藏

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