UIScrollView的基本使用
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)隱藏
用戶(hù)可以用過(guò)手勢(shì)拖動(dòng)來(lái)查看超出邊框并被隱藏的內(nèi)容
UIScrollView無(wú)法滾動(dòng)的解決辦法
如果UIScrollView無(wú)法滾動(dòng),可能是以下原因:
1.沒(méi)有設(shè)置contentSize
2.scrollEnabled=NO
3.沒(méi)有接收到觸摸事件:userInteractionEnabled=NO
UIScrollView的常見(jiàn)屬性
UIScrollView的其他屬性
UIScrollView和delegate的通信
成為delegate的條件
UIScrollView將delegate需要實(shí)現(xiàn)的方法都定義在了UIScrollViewDelegate協(xié)議中辞居,因此要想成為UIScrollView的delegate,必須遵守UIScrollViewDelegate協(xié)議匾寝,然后實(shí)現(xiàn)協(xié)議中相應(yīng)的方法砖第,就可以監(jiān)聽(tīng)UIScrollView的滾動(dòng)過(guò)程了
UIScrollView和控制器
一般情況下,就設(shè)置UIScrollView所在的控制器 為UIScrollView的delegate
設(shè)置控制器為UIScrollView的delegate有2種方法:
1.通過(guò)代碼(self就是控制器) self.scrollView.delegate= self;
2.通過(guò)storyboard拖線(右擊UIScrollView)
內(nèi)容縮放
UIScrollView不僅能滾動(dòng)顯示大量?jī)?nèi)容素征,還能對(duì)其內(nèi)容進(jìn)行縮放處理
也就是說(shuō)集嵌,要完成縮放功能的話,只需要將需要縮放的內(nèi)容添加到UIScrollView中
UIScrollView的縮放原理
當(dāng)用戶(hù)在UIScrollView身上使用捏合手勢(shì)時(shí)御毅,UIScrollView會(huì)給代理發(fā)送一條消息根欧,詢(xún)問(wèn)代理究竟要縮放自己內(nèi)部的哪一個(gè)子控件(哪一塊內(nèi)容)
當(dāng)用戶(hù)在UIScrollView身上使用捏合手勢(shì)時(shí),UIScrollView會(huì)調(diào)用代理的viewForZoomingInScrollView:方法端蛆,這個(gè)方法返回的控件就是需要進(jìn)行縮放的控件
縮放實(shí)現(xiàn)步驟
1.設(shè)置UIScrollView的id<UISCrollViewDelegate>delegate代理對(duì)象
2.設(shè)置minimumZoomScale:縮小的最小比例
3.設(shè)置maximumZoomScale:放大的最大比例
4.讓代理對(duì)象實(shí)現(xiàn)下面的方法凤粗,返回需要縮放的視圖控件
-(UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView;
?跟縮放相關(guān)的其他代理方法
?縮放完畢的時(shí)候調(diào)用
-(void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
?正在縮放的時(shí)候調(diào)用
-(void)scrollViewDidZoom:(UIScrollView *)scrollView