[iOS]TableView顶部图片下拉放大功能

现在很多电商类的软件Table顶部上面的图片都可以下拉放大例如口袋购物、微店

下面是自己写的一个小demo,效果图如下

为了方便直接用storyboard拖界面了,在navigationController的右边添加了个按钮跳转到下拉放大图片的那个界面

实现原理很简单,就是在UITableview上边添加一个子视图,在TableView拖动的时候动态的改变图片的Y和高,就可以实现这个效果。

步骤如下:

1. 布置UITableview

UITableview的设置和正常一样,没有什么需要注意的地方,代码如下:

2. 准备顶部视图

这里我们的图片高度暂定为200 所以我创建了一个宏

#define kHeaderHeight 200

然后我创建了一个View,View的高度直接使用宏,然后在View上面添加一个ImageView 代码如下:

需要注意的是,图片的contentMode必须设置为UIViewContentModeScaleAspectFill, 这样才能保证图片在放大的过程中高和宽是同时放大的,设置了UIViewContentModeScaleAspectFill发现在侧滑放回上一个界面的时候图片的多余的部分还在影响美观

加上_headerImageView.clipsToBounds=YES;就好了

3. 拖动事件的处理

在TableView滑动的时候,一旦判定是下拉状态并且是从大于图片高度的地方下拉的,那么我们就要动态的改变图片的纵向位置和图片的高度(由于设置了contentMode,所以宽度自己会变化),最终实现所需要的效果。在scrollViewDidScroll方法里实现 代码如下:


最后剩下的就是navigationController了

大致就是这样

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,205评论 4 61
  • 比特币破4万了,1个月多的时间从价格谷底又到了谷峰,圈里的朋友对币市的形容“币圈三月,股市十年”、“币圈三载,人间...
    六便士菇凉阅读 2,695评论 1 0
  • 《当我放过自己的时候》是马德的一本书,是我前些日子在机场打发时间买的,原因不外乎自己刚分手,心里憋屈着呢久久放不下...
    般若观阅读 4,127评论 9 18
  • 静默的烧灼感 从肩胛骨 爬过脖颈 蔓延到后脑 别人都不会在意 只有我的心 宛如初生的婴儿 第一次看到全新的世界
    百索图阅读 988评论 0 0