UIScrollerView & UIPageControl

一.滾動視圖

1.簡單認(rèn)識

移動設(shè)備的屏幕?小是極其有限的,因此直接展?在?戶眼前的內(nèi)容也相當(dāng)有限,當(dāng)展?的內(nèi)容較多超出一個屏幕時,用戶可通過滾動操作來查看屏幕以外的內(nèi)容,普通的UIView不具備滾動功能,不能顯?過多的內(nèi)容。UIScrollView是一個能夠滾動的視圖控件,可以?用來展?大量的內(nèi)容,并且可以通過滾動查看所有的內(nèi)容。

2.屬性

  • contentOffset屬性:UIScrollView滾動的位置;用來表示UIScrollView內(nèi)容的尺寸,滾動范圍(能滾多遠(yuǎn))
  • contentSize屬性:UIScrollView內(nèi)容的尺?寸(相當(dāng)于滾動的范圍)
  • bounces屬性:設(shè)置UIScrollView是否需要彈簧效果
  • alwaysBounceVertical屬性:設(shè)置垂直方向是否有彈簧效果(必須在bounces設(shè)置為YES的前提下設(shè)置才有效)
  • alwaysBounceHorizontal屬性:設(shè)置水平方向是否有彈簧效果(必須在bounces設(shè)置為YES的前提下設(shè)置才有效)
  • pagingEnabled屬性:設(shè)置UIScrollView的滾動方式是否為翻頁效果
  • scrollEnabled屬性:設(shè)置UIScrollView是否能滾動
  • showsHorizontalScrollIndicator屬性:是否顯示水平方向的滑動條
  • showsVerticalScrollIndicator屬性:是否顯示垂直方向的滑動條
  • scrollIndicatorInsets屬性:設(shè)置滾動條的位置,可以通過UIEdgeInsetsMake函數(shù)來指定該位置
  • indicatorStyle屬性:設(shè)置滾動條的風(fēng)格,有三個可選項:UIScrollViewIndicatorStyleDefault(灰)
    UIScrollViewIndicatorStyleBlack(黑)
    UIScrollViewIndicatorStyleWhite(白)
  • decelerationRate屬性:減速比(通常是0-1的值 值越大減速越慢)
  • scrollsToTop屬性:設(shè)置點擊狀態(tài)欄是否滑動到scrollView的頂部

3.方法

  • -setContentOffset:animated:方法:設(shè)置scrollView的位置
  • -scrollRectToVisible:animated:方法:將指定的區(qū)域滾動到可視范圍之內(nèi),如果該地區(qū)已經(jīng)在可視區(qū)域,則什么都不做

4.UIScrollViewDelegate

協(xié)議定義了滾動視圖對應(yīng)的事件的回調(diào)方法,下面的代碼展示了其中的一部分方法

5.UIScrollView不能滾動的幾種情況

1.沒有設(shè)置contentSize
2.scrollEnabled屬性 = NO
3.userInteractionEnabled屬性 = NO

  • 注意:enabled和userInteractionEnabled的區(qū)別
    enabled: 代表控件不可用
    userInteractionEnabled: 代表控件不可以和用戶交互, 也就是不能響應(yīng)用戶的操作
    滾動條也是scrollView的子控件的一部分,所以以后在開發(fā)中不推薦大家通過subviews獲取子控件的方式來操作子控件

6.UIScrollView常用功能

1.縮放功能

  • 1.設(shè)置UIScrollView的id<UISCrollViewDelegate>delegate代理對象
  • 2.設(shè)置minimumZoomScale:縮小的最小比例
  • 3.設(shè)置maximumZoomScale:放大的最大比例
  • 4.讓代理對象實現(xiàn)下面的方法,返回需要縮放的視圖控件
-(UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView;
  • 注意:跟縮放相關(guān)的其他代理方法

縮放完畢的時候調(diào)用:

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

正在縮放的時候調(diào)用:

-(void)scrollViewDidZoom:(UIScrollView*)scrollView

7.實例演示

效果:6張圖,加了個定時器,可以自己滾動,每次滾動的寬度是一張圖片的寬度。如下圖剛好是從當(dāng)前圖準(zhǔn)備滾到下一張圖的效果

8.xib中設(shè)置ContentSize

http://blog.csdn.net/wokenshin/article/details/52239536

二.分頁視圖

1.簡單認(rèn)識

UIPageControl類提供一行點來指示當(dāng)前顯示的是多頁面視圖的哪一頁, 當(dāng)用戶界面需要按頁面顯示時, 使用UIPageControl控件將要顯示的用戶界面內(nèi)容分頁進行顯示會使編程工作變得更加方便快捷;如圖


2.基本屬性 && 方法

1.屬性

備注:

defersCurrentPageDisplay屬性:如果你希望直到有時間執(zhí)行完你的操作之后,才更新當(dāng)前指示器當(dāng)前指示頁,可以將該屬性設(shè)為YES

2.UIPageControl的常用方法:
-updateCurrentPageDisplay:方法:更新頁碼指示器到當(dāng)前頁

給pageControl綁定事件
[pageControl addTarget:self action:@selector(pageControlChange:) 
forControlEvents:UIControlEventValueChanged];

實現(xiàn)pageControl的綁定事件()
- (void)pageControlChange:(UIPageControl *)pageControl {

 NSLog(@"點了"); // 更新當(dāng)前頁碼 [pageControl updateCurrentPageDisplay];
}

3.通過KVC給UIPageControl的選中頁面與非選中頁面的控件的圖片, 設(shè)置自定義滾動條圖片(圖片名隨意加的)

[self.pageControl setValue:[UIImage imageNamed:@"current"] forKeyPath:@"_currentPageImage"];
[self.pageControl setValue:[UIImage imageNamed:@"other"] forKeyPath:@"_pageImage"];

3.實例演示(綜合滾動視圖)-->簡單引導(dǎo)頁

效果圖:

(三張滾動圖,滾到第三張加了個按鈕,點擊進入另一個控制器;在此做了個偏好設(shè)置,讓該引導(dǎo)頁在APP第一次啟動時才出現(xiàn),之后打開不再顯示)代碼如下:

代碼69~72

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容