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