这个效果在很多app中都有用到,比如微信朋友圈,知乎日报首页
我的项目里也遇到了这样的需求.特意记录下来,没啥技术含量 都是第三方的东西
其实核心就几行代码
原理是让轮播器和tableView的布局都顶在父视图的顶部 轮播器盖在tableView的上面
然后设置tableView的偏移量为230 让他提前偏移出轮播器高度的值 不至于让轮播器挡住tableView的内容
然后监听tableView的滚动
使用这个方法 根据tableView滑动的偏移量计算出轮播器的高度 然后更新轮播器的高度布局
下面的navView是把系统的navigationController隐藏了 自己做了个64高度的uiview作为navigationController 因为我的需求里 根据滑动偏移量是要改变navigationController的颜色 如果用系统的会影响到push到其他页面的navigationController,我嫌麻烦,所以干脆隐藏自己做个假的
NAVBAR_CHANGE_POINT这个宏是用来定义tableView偏移量到多少的时候navigationController开始调整它的透明度
布局的时候不要忘了把tableView和轮播器约束都设置为参照self.view顶部为0
自动布局用的Masnory,轮播器用的SDCycleScrollView
demo地址:http://git.oschina.net/jiuyue/tableViewPullDemo
Ps:如果想要实现图片下拉露出更多的效果 请让你的美工给你提供640x640的图片 否则只能放大