1、UIScrolllView控件的簡單介紹ide
1.什麼是UIScrollView佈局
(1)移動設備的屏幕大小是極其有限的,所以直接展現在用戶眼前的內容也至關有限post
(2)當展現的內容較多,超出一個屏幕時,用戶可經過滾動手勢來查看屏幕之外的內容atom
(3)普通的UIView不具有滾動功能,不能顯示過多的內容spa
(4)UIScrollView是一個可以滾動的視圖控件,能夠用來展現大量的內容,而且能夠經過滾動查看全部的內容3d
(5)舉例:手機上的「設置」、其餘示例程序 代理
2.UIScrollView的簡單使用方法code
(1)將須要展現的內容添加到UIScrollView中對象
(2)設置UIScrollView的contentSize屬性,告訴UIScrollView全部內容的尺寸,也就是告訴 它滾動的範圍(能滾多遠,滾到哪裏是盡頭) blog
3.UIScrollView的經常使用屬性
CGPoint contentOffSet | 監控目前控件滾動的位置 |
CGSize contentSize | 滾動範圍的大小 |
UIEdgeInserts contentInsert | 設置ScrollView的四周邊距 |
id<UIScrollerViewDelagate>delagate | 設置協議 |
BOOL showsHorizontalScrollIndicator | 控制是否顯示水平方向的滾動條 |
BOOL showsVerticalScrollIndicator | 控制是否顯示垂直方向的滾動條 |
float minimumZoomScale | 縮小的最小比例 |
float maximumZoomScale | 放大的最大比例 |
BOOL bouncesZoom | 控制縮放的時候是否會反彈 |
4.幾個經常使用屬性示意圖
5.若是沒法滾動,可能存在如下緣由
♥ 沒有設置contentSize
♥ scrollEnable = NO
♥ 沒有接收到觸摸事件:userInteractionEnabled = NO
♥ 沒有取消autolayout功能。其實也能夠用另外一種方法代替取消autolayout功能。以下
在控制器的View當中寫上這一句代碼.
self.view.translatesAutoresizingMaskIntoConstraints = NO;
在自動佈局的時候,它會自動轉一個東西.
它會把你的auotSize轉換成自動佈局
設置這句話
告訴它不要將autosizing轉換成自動佈局.
6.容易錯誤理解的地方
(1)UIScrollView的frame與contentsize屬性的區分:UIScrollView的frame指的是這個scrollview的可視範圍(可看見的區域),contentsize是其滾動範圍。
(2)contentinset(不帶*號的通常不是結構體就是枚舉),爲UIScrollView增長額外的滾動區域。(上,左,下,右)逆時針。contentinset可使用代碼或者是視圖控制器進行設置,但二者有區別(注意區分)。
(3)contentsize屬性只能使用代碼設置。
(4)contentoffset是個CGpoint類型的結構體,用來記錄ScrollView的滾動位置,即記錄着「框」跑到了哪裏。知道了這個屬性,就知道了其位置,能夠經過設置這個屬性來控制這個「框」的移動。
(5)不容許直接修改某個對象內部結構體屬性的成員,三個步驟(先拿到值,修改之,再把修改後的值賦回去)。
(6)增長了額外區域後,contentoffset的原點在哪裏?其實是不包括額外區域的。
2、UIScrollView的代理(delegate)
•只要將UIScrollView的pageEnabled屬性設置爲YES,UIScrollView會被分割成多個獨立頁面,裏面的內容就能進行分頁展現
•通常會配合UIPageControl加強分頁效果,UIPageControl經常使用屬性以下
♥一共有多少頁
@property(nonatomic) NSInteger numberOfPages;
♥當前顯示的頁碼
@property(nonatomic) NSInteger currentPage;
♥只有一頁時,是否須要隱藏頁碼指示器
@property(nonatomic) BOOL hidesForSinglePage;
♥其餘頁碼指示器的顏色
@property(nonatomic,retain) UIColor *pageIndicatorTintColor;
♥當前頁碼指示器的顏色
@property(nonatomic,retain) UIColor *currentPageIndicatorTintColor;
♦ NSTimer叫作「定時器」,它的做用以下
♥在指定的時間執行指定的任務
♥每隔一段時間執行指定的任務
♦ 調用下面的方法就會開啓一個定時任務
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
每隔ti秒,調用一次aTarget的aSelector方法,yesOrNo決定了是否重複執行這個任務
♦ 經過invalidate方法能夠中止定時器的工做,一旦定時器被中止了,就不能再次執行任務。只能再建立一個新的定時器才能執行新的任務
- (void)invalidate;
1 //當用戶開始使用捏合手勢的時候
2 -(UIView *)viewForZoomingInScrolllView:(UIScrollView *)scrollView 3 { 4 //返回的控件就是須要縮放的
5 return self.mimoView; //mimoView控件已經設置爲一個屬性
6 } 7
8
9 //正在使用捏合手勢
10 -(void)scrollViewDidZoom:(UIScrollView *)scrollview{ 11 }
♥ 整理完畢,晚安啦 ♥