iOS Developer

仿轻芒多个tableVIew的Header悬浮

2017-04-27  本文已影响227人  老骚鹅

新项目(后面会贴上demo的github地址)需要仿照轻芒的效果,唯一的区别是轻芒的tableVIew是有翻页的规则页面,而我们的项目是不能用翻页的,由于网上资料真的不多,所以只能自己写,具体思路:
1.先确定navigationBarHeader 和 HomeHeadHeight 和 首页tabelView的基础 的高度

#define NavigationTitleViewHeight 64  //顶部titleScrollView的高度
#define HomeHeadHeight (116 * KWIDTH_IPHONE6_SCALE)  //中部titleScrollView的高度
#define BaseHomeTableViewHeight   (SCREEN_HEIGHT - NavigationTitleViewHeight )  //首页tabelView的基础高度

2.设置一个baseTableViewController,将tableView的contentOffset设为CGPointMake(0, -HomeHeadHeight),然后底部设置一个scrollView,contentSize设为CGSizeMake(5 * SCREEN_WIDTH, 0);并且将所有的TableViewController的tableView加上去.

3.自定义NavigationTitleView和CenterTitleHeaderView,由于NavigationTitleView和CenterTitleHeaderView和最底下的scrollVIew要实现实时联动,所以需要在各自的scrollView的 - (void)scrollViewDidScroll:(UIScrollView *)scrollView 代理方法中做一些操作,这里就不废话了.后面会贴代码.

  1. 监听baseTableViewController的 - (void)scrollViewDidScroll:(UIScrollView *)scrollView,若当前tableView的contentofSet的y值>=0时,要使其他tableView的contentOfSet的y值设为0,若当前tableView的contentoffset的y值<= -HomeHeadHeight时,要使其他tableView的contentOfSet的y值设为-HomeHeadHeight,若当前tableView的contentoffset的y值>-HomeHeadHeight && y值<0,则让其他tableView的contentOfSet的y值与当前tableView的contentOffSet相等

大体思路差不多是这样,由于本人文笔比较差,也懒,直接贴上github地址,可以对照着代码看会好点,而且demo最好在真机上跑,在模拟器上有时候怪怪的,在真机上不会,https://github.com/tangtiancheng/qingmangHeader

另外如果需要看其他项目也可以查看我的github地址,里面有我工作做的一部分项目,希望可以帮到各位https://github.com/tangtiancheng

上一篇下一篇

猜你喜欢

热点阅读