本周的課程內(nèi)容好多扛吞,工程管理還有View層次和屬性初肉、事件與手勢這些筆記還沒整理好酷鸦,索性就把做本周作業(yè)的思考先記錄下來好啦,花了不少時間在網(wǎng)上找資料牙咏,總結(jié)一下方便自己以后查閱臼隔。
本周的作業(yè)要求將ScrollView與PageControll結(jié)合使用,做出類似于滾動banner的效果妄壶。以下便是做作業(yè)時的思路摔握。
首先是代碼編輯前的準(zhǔn)備:
1.首先準(zhǔn)備好幾張圖片,將他們統(tǒng)一格式命名如:image1丁寄、image2等等氨淌,將其拖進(jìn)項目里,最好以一個group的形式放置伊磺,方便管理盛正。
2.在Interface Builder中將ScrollView和PageControll拖進(jìn)ViewController中,最好將ScrollView的寬度與ViewController等寬屑埋,方便后續(xù)的計算豪筝。
3.將ScrollView和PageControll通過IBOutlet關(guān)聯(lián)至ViewController。
然后是代碼編輯階段:
1.在ViewController的m文件中關(guān)聯(lián)協(xié)議<UIScrollViewDelegate>。
2.在viewDidLoad中實(shí)現(xiàn)設(shè)置好ScrollView和PageControll:
設(shè)置PageControll的頁數(shù)和起始頁续崖、取消ScrollView的邊緣彈跳效果敲街、設(shè)置ScrollView的內(nèi)容區(qū)域大小(寬度=ScrollView的寬度*分頁頁數(shù))严望、設(shè)置scrollView的內(nèi)容坐標(biāo)零點(diǎn)聪富、啟動分頁功能(self.scrollView.pagingEnabled=YES)、關(guān)閉水平滾動條(self.scrollView.showsHorizontalScrollIndicator = NO)著蟹。最后有兩個關(guān)鍵,一個是self.scrollView.delegate=self必須要寫進(jìn)代碼里梢莽,這樣才能使用方法scrollViewDidScroll:(UIScrollView *)萧豆。還有就是調(diào)用自己構(gòu)造的方法來創(chuàng)建分頁內(nèi)容。
3.構(gòu)造創(chuàng)建分頁內(nèi)容的方法:
需要注意的是每一頁的坐標(biāo)零點(diǎn)位置的x值隨著分頁的頁數(shù)而成倍變化(x=ScrollView的寬度*分頁頁數(shù))昏名,其余寬高均與ScrollView相同涮雷。然后利用[UIImage imageNamed:[NSString stringWithFormat:@""]來加載每個分頁的圖片,最后需要設(shè)置圖片模式還有令clipsToBounds = YES來防止不同分頁間的圖片互相覆蓋轻局。最后別忘了將創(chuàng)建的分頁加載為ScrollView的SubView洪鸭。
4.將PageControl的頁數(shù)變化與ScrollView的滾動操作結(jié)合:
調(diào)用scrollViewDidScroll:(UIScrollView *)方法,在每次滾動時計算當(dāng)前處于哪一頁仑扑,并將PageControl.currentPage設(shè)置為計算出的當(dāng)前頁數(shù)览爵。這里計算的方法很重要,可以利用ScrollView.contentOffset的x值除以ScrollView的寬度來獲得當(dāng)前頁數(shù)镇饮。
這里的contentOffset的官方解釋如下:
contentOffset : A CGPoint value that defines the top-left corner of the scroll view bounds.
即偏移量蜓竹,滾動視圖的bounds的origin點(diǎn)的意思。
雖然作業(yè)是做完了储藐,但是課程內(nèi)的內(nèi)容好多都沒搞懂俱济,這段時間下得功夫不夠,該反省自勉一下了QAQ钙勃。