UIScrollView和UIPageControl

UIScrollView

UIScrollView:是可以滾動(dòng)的view耿焊,UIView本身不能滾動(dòng)聚至,子類(lèi)UIScrollview拓展了滾動(dòng)方面的功能。UIScrollview主要專(zhuān)長(zhǎng)于兩個(gè)方面:滾動(dòng):contentSize大于frame.size的時(shí)候,能夠滾動(dòng)曙砂。縮放:自帶縮放骏掀,可以指定縮放倍數(shù)鸠澈。
UIScrollView初始化:

[self.window addSubview:scrollView];```

##UIScrollView常用屬性
contentSize:設(shè)置滾動(dòng)區(qū)域
`scrollView.contentSize = CGSizeMake(CGRectGetWidth(self.window.frame)*4, 0);`

pagingEnabled:設(shè)置分頁(yè)效果 默認(rèn)值為NO
scrollView.pagingEnabled = YES;

設(shè)置滾動(dòng)條是否顯示 默認(rèn)值為YES
```scrollView.showsHorizontalScrollIndicator = YES;//橫向滾動(dòng)條
scrollView.showsVerticalScrollIndicator = NO;//縱向滾動(dòng)條```

bounces:設(shè)置邊界是否有反彈效果 默認(rèn)值為YES

scrollView.bounces = YES;//控制所有的
scrollView.alwaysBounceHorizontal = YES;//控制水平方向遇到邊框是否反彈
scrollView.alwaysBounceVertical = YES;//控制垂直方向遇到邊框是否反彈```

scrollEnabled:控制控件是否能滾動(dòng)
scrollView.scrollEnabled = YES;

scrollsToTop:控制控件滾動(dòng)到頂部
scrollView.scrollsToTop = YES

contentOffSet :監(jiān)控目前滾動(dòng)的位置
CGPoint offSet = scrollView.contentOffset;

indicatorStyle:設(shè)置滾動(dòng)條的樣式
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;

設(shè)置縮放比例:

scrollView.maximumZoomScale = 5.0;//設(shè)置可放大的最大比例```

zooming:判斷空間是否正在改變
`BOOL zooming = scrollView.zooming`

bouncesZoom:縮放時(shí)是否反彈
` scrollView.bouncesZoom = YES;`

##UIScrollView的代理方法
###滾動(dòng)視圖拖拽時(shí)的代理方法
scrollViewWillBeginDragging:開(kāi)始拖拽(手指觸碰到屏幕,并且移動(dòng))截驮,執(zhí)行一次
```- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    NSLog(@"%s",__func__);// __func__打印函數(shù)名
}```

scrollViewDidScroll:已經(jīng)開(kāi)始滾動(dòng)(只要scrollview是滾動(dòng)狀態(tài)就會(huì)調(diào)用此方法)
```- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    NSLog(@"%s",__func__);
}```

scrollViewWillBeginDecelerating:開(kāi)始減速(手指離開(kāi)屏幕)笑陈,正在滾動(dòng)的視圖減速,執(zhí)行一次
```- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"%s",__func__);
}```

scrollViewDidEndDecelerating:視圖靜止葵袭,執(zhí)行一次
```- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"%s",__func__);
}```

###與縮放有關(guān)的代理方法
viewForZoomingInScrollView:指定scrollView的某一個(gè)子視圖為可縮放視圖涵妥,前提條件是該視圖已經(jīng)添加到scrollView上面
```- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    UIView *view = [scrollView viewWithTag:1000];
    return view;
}```

scrollViewWillBeginZooming:withView:開(kāi)始縮放 第二個(gè)參數(shù)是指我們將要縮放的視圖(也就是是指定的view),執(zhí)行一次
```- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
{
    NSLog(@"%@",view);
}```

scrollViewDidZoom:正在縮放的代理方法 只要正在縮放坡锡,就會(huì)執(zhí)行此方法蓬网,所以此方法在縮放過(guò)程中會(huì)多次調(diào)用
```-(void)scrollViewDidZoom:(UIScrollView *)scrollView
{
    NSLog(@"%s",__func__);
}```

scrollViewDidEndZooming:withView:atScale:縮放結(jié)束執(zhí)行的代理方法窒所, view當(dāng)前正在縮放的視圖,scale當(dāng)前正在縮放視圖的縮放比例帆锋,執(zhí)行一次
```- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
{
     NSLog(@"%s",__func__);
}```

#UIPageControl
UIPageControl:頁(yè)面控制器(配合UIScrollView使用),其父類(lèi)是UIControl 吵取。可以像button一樣添加事件窟坐,事件觸發(fā)使用UIControlEventsValueChanged海渊。通常在Scrollview滾動(dòng)的時(shí)候修改pageControl的currentPage屬性。
UIPageControl:初始化
```UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(self.view.frame.size.width, 700, 80, 20)];```
##UIPageControl常用屬性
numberOfPages:設(shè)置頁(yè)數(shù)
`pageControl.numberOfPages = 4;`

currentPage:設(shè)置當(dāng)前頁(yè)數(shù)
`pageControl.currentPage = 0;`

pageIndicatorTintColor:改變不被選中的顏色
`pageControl.pageIndicatorTintColor = [UIColor orangeColor];`

currentPageIndicatorTintColor:改變選中的顏色
`pageControl.currentPageIndicatorTintColor = [UIColor purpleColor];`

添加觸發(fā)事件
```[pageControl addTarget:self action:@selector(pageAction:) forControlEvents:UIControlEventValueChanged];
[self.window addSubview:pageControl];```

###UIPageControl的回調(diào)方法
```- (void)pageAction: (UIPageControl *)sender
{
    //根據(jù)當(dāng)前的頁(yè)數(shù)哲鸳,使得scrollView也滑動(dòng)到對(duì)應(yīng)的子視圖  通過(guò)設(shè)置scrollView的contentOffSet來(lái)實(shí)現(xiàn)(改變contentOffSet實(shí)際上就是改變scrollView的bounds)
    int page = (int)sender.currentPage;//得到當(dāng)前頁(yè)數(shù)
    //根據(jù)當(dāng)前頁(yè)數(shù)來(lái)計(jì)算偏移量
    //得到scrollView
    UIScrollView *scrollView = (UIScrollView *)[self.view viewWithTag:1000];//scrollViews的tag設(shè)置臣疑,這里設(shè)置為1000
    //設(shè)置scrollView的偏移量
    [scrollView setContentOffset:CGPointMake(page * CGRectGetWidth(self.view.frame), 0) animated:YES];
}```
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市徙菠,隨后出現(xiàn)的幾起案子讯沈,更是在濱河造成了極大的恐慌,老刑警劉巖婿奔,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缺狠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡萍摊,警方通過(guò)查閱死者的電腦和手機(jī)挤茄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)冰木,“玉大人穷劈,你說(shuō)我怎么就攤上這事∮环校” “怎么了歇终?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)逼龟。 經(jīng)常有香客問(wèn)我评凝,道長(zhǎng),這世上最難降的妖魔是什么腺律? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任奕短,我火速辦了婚禮,結(jié)果婚禮上匀钧,老公的妹妹穿的比我還像新娘篡诽。我一直安慰自己,他們只是感情好榴捡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布杈女。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪达椰。 梳的紋絲不亂的頭發(fā)上翰蠢,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音啰劲,去河邊找鬼梁沧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蝇裤,可吹牛的內(nèi)容都是我干的廷支。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼栓辜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼恋拍!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起藕甩,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤施敢,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后狭莱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體僵娃,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年腋妙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了默怨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡骤素,死狀恐怖匙睹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谆甜,我是刑警寧澤垃僚,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布集绰,位于F島的核電站规辱,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏栽燕。R本人自食惡果不足惜罕袋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望碍岔。 院中可真熱鬧浴讯,春花似錦、人聲如沸蔼啦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至奈籽,卻和暖如春饥侵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背衣屏。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工躏升, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人狼忱。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓膨疏,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親钻弄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子佃却,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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