点击上面的菜单栏,下面会跳转到相应的界面。滑动下面的界面,上面的菜单栏也会跟着变化。
思路:
头部是一个ScrollView,根据数组的count来确定创建多少个按钮。(下面的一个collectionView。也是根据数组来确定Item个数。)
- (void)setScrollHeaderButtonTitleArray:(NSArray*)array;
同时根据所有按钮的宽度给ScrollView设置ContentSize。
在按钮的点击方法中,需要做两件事,改变按钮的选中/未选中样式,并执行代理方法。
[self.delegate clickButtonAtIndex:index];
代理方法里面的这样写的,当点击了不同的按钮让collectionView跟着滚一下。
- (void)clickButtonAtIndex:(NSInteger)index {
[_collectionViewscrollToItemAtIndexPath:[NSIndexPathindexPathForItem:indexinSection:0]atScrollPosition:UICollectionViewScrollPositionNoneanimated:YES];
}
当collectionView滑动时,ScrollHeader执行这个方法。
- (void)setScrollToIndex:(NSInteger)integer;
根据collectionView当前的item来确定header的第几个按钮呈现选中状态就OK拉!
也有别的思路,比如有的人喜欢每一个按钮对应的是一个controller,能达到目的就好。
网友评论