? 點(diǎn)擊上面的菜單欄亩钟,下面會(huì)跳轉(zhuǎn)到相應(yīng)的界面乓梨。滑動(dòng)下面的界面清酥,上面的菜單欄也會(huì)跟著變化扶镀。
思路:
頭部是一個(gè)ScrollView,根據(jù)數(shù)組的count來(lái)確定創(chuàng)建多少個(gè)按鈕总处。(下面的一個(gè)collectionView狈惫。也是根據(jù)數(shù)組來(lái)確定Item個(gè)數(shù)。)
- (void)setScrollHeaderButtonTitleArray:(NSArray*)array;
同時(shí)根據(jù)所有按鈕的寬度給ScrollView設(shè)置ContentSize鹦马。
在按鈕的點(diǎn)擊方法中胧谈,需要做兩件事,改變按鈕的選中/未選中樣式荸频,并執(zhí)行代理方法菱肖。
[self.delegate ?clickButtonAtIndex:index];
代理方法里面的這樣寫(xiě)的,當(dāng)點(diǎn)擊了不同的按鈕讓collectionView跟著滾一下旭从。
- (void)clickButtonAtIndex:(NSInteger)index {
[_collectionViewscrollToItemAtIndexPath:[NSIndexPathindexPathForItem:indexinSection:0]atScrollPosition:UICollectionViewScrollPositionNoneanimated:YES];
}
當(dāng)collectionView滑動(dòng)時(shí)稳强,ScrollHeader執(zhí)行這個(gè)方法场仲。
- (void)setScrollToIndex:(NSInteger)integer;
根據(jù)collectionView當(dāng)前的item來(lái)確定header的第幾個(gè)按鈕呈現(xiàn)選中狀態(tài)就OK拉退疫!
也有別的思路渠缕,比如有的人喜歡每一個(gè)按鈕對(duì)應(yīng)的是一個(gè)controller,能達(dá)到目的就好褒繁。