UIScrollView是一個(gè)能夠滾動(dòng)的視圖控件剿配,可以用來(lái)展示大量的內(nèi)容,并且可以通過(guò)滾動(dòng)查看所有的內(nèi)容.
UIScrollView的用法很簡(jiǎn)單
將需要展示的內(nèi)容添加到UIScrollView中
設(shè)置UIScrollView的contentSize屬性阅束,告訴UIScrollView所有內(nèi)容的尺寸呼胚,也就是告訴它滾動(dòng)的范圍(能滾多遠(yuǎn),滾到哪里是盡頭)
UIScrollView顯示內(nèi)容的小細(xì)節(jié)
超出UIScrollView邊框的內(nèi)容會(huì)被自動(dòng)隱藏
用戶可以用過(guò)手勢(shì)拖動(dòng)來(lái)查看超出邊框并被隱藏的內(nèi)容
開發(fā)中如果UIScrollView無(wú)法滾動(dòng)息裸,可能是以下原因:
沒(méi)有設(shè)置contentSize
scrollEnabled = NO
沒(méi)有接收到觸摸事件:userInteractionEnabled = NO
常用屬性
@property(nonatomic) CGPoint contentOffset;
這個(gè)屬性用來(lái)表示UIScrollView滾動(dòng)的位置
(其實(shí)就是內(nèi)容左上角與scrollView左上角的間距值)
@property(nonatomic) CGSize contentSize;
這個(gè)屬性用來(lái)表示UIScrollView內(nèi)容的尺寸蝇更,滾動(dòng)范圍(能滾多遠(yuǎn))
@property(nonatomic) UIEdgeInsets contentInset;
這個(gè)屬性能夠在UIScrollView的4周增加額外的滾動(dòng)區(qū)域沪编,一般用來(lái)避免scrollView的內(nèi)容被其他控件擋住
@property(nonatomic) BOOL bounces;
設(shè)置UIScrollView是否需要彈簧效果
@property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;
設(shè)置UIScrollView是否能滾動(dòng)
@property(nonatomic) BOOL showsHorizontalScrollIndicator;
是否顯示水平滾動(dòng)條
@property(nonatomic) BOOL showsVerticalScrollIndicator;
是否顯示垂直滾動(dòng)條
代理
很多時(shí)候,我們想在UIScrollView正在滾動(dòng) 或 滾動(dòng)到某個(gè)位置 或者 停止?jié)L動(dòng) 時(shí)做一些特定的操作
要想完成上述功能年扩,前提條件就是能夠監(jiān)聽到UIScrollView的整個(gè)滾動(dòng)過(guò)程
當(dāng)UIScrollView發(fā)生一系列的滾動(dòng)操作時(shí)蚁廓, 會(huì)自動(dòng)通知它的代理(delegate)對(duì)象,給它的代理發(fā)送相應(yīng)的消息厨幻,讓代理得知它的滾動(dòng)情況
也就是說(shuō)相嵌,要想監(jiān)聽UIScrollView的滾動(dòng)過(guò)程,就必須先給UIScrollView設(shè)置一個(gè)代理對(duì)象况脆,然后通過(guò)代理得知UIScrollView的滾動(dòng)過(guò)程
// 用戶開始拖拽時(shí)調(diào)用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
// 滾動(dòng)到某個(gè)位置時(shí)調(diào)用 - (void)scrollViewDidScroll:(UIScrollView *)scrollView;
// 用戶結(jié)束拖拽時(shí)調(diào)用 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
該控件常見使用就是首頁(yè)輪播廣告饭宾,具體實(shí)現(xiàn)不再累述,老師布置的作業(yè)就是要我們實(shí)現(xiàn)這個(gè)功能 格了,當(dāng)然要實(shí)現(xiàn)自動(dòng)輪播展示下一頁(yè)或者用戶滑倒最后一頁(yè)看铆,再往后滑動(dòng)時(shí)直接展示第一頁(yè)。只需要三個(gè)view重復(fù)使用即可盛末,再加上NSTimer定時(shí)器實(shí)現(xiàn)輪播加無(wú)限展示
滿地打滾賣萌求贊性湿,如果本文幫助到你,輕點(diǎn)下方的紅心满败,給作者君增加更新的動(dòng)力。