(一) 布置UITableview

我们首先要通过设置UITableview的内容偏移 self.tableView.contentInset

来为图片视图留出位置,这里我们的图片高度暂定为280

const CGFloat contentInset = 280;@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>@property (nonatomic, strong) UITableView *tableView;@property (nonatomic, strong) UIImageView *imageView;@end

简单地创建一个tableView

    self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds];_tableView.delegate = self;_tableView.dataSource = self;[self.view addSubview:_tableView];self.tableView.contentInset = UIEdgeInsetsMake(contentInset , 0, 0, 0);

(二) 布置图片

   self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, - contentInset, self.view.bounds.size.width, contentInset)];_imageView.image = [UIImage imageNamed:@"image01.jpg"];[self.tableView addSubview:_imageView];_imageView.contentMode = UIViewContentModeScaleAspectFill;_imageView.clipsToBounds = YES;

(三) 拖动事件的处理

我们都知道,UITableview属于可以滑动的控件,所以它的父类是UIScrollView,所以我们就可以在滑动事件中做出一些处理。
在滑动的时候,一旦判定是下拉状态,那么我们就要动态的改变图片的纵向位置和图片的高度(由于设置了contentMode,所以宽度自己会变化),最终实现所需要的效果。
代码如下

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {CGPoint point = scrollView.contentOffset;if (point.y < - contentInset) {CGRect rect  = self.imageView.frame;rect.origin.y = point.y;rect.size.height = - point.y;self.imageView.frame = rect;}}

由于contentInset预设置的大小不同,可能会出现图片先下拉再放大和立即放大的两种效果.

转载于:https://www.cnblogs.com/HJQ2016/p/6005932.html

第六十七篇、OC_UITableView head下拉图片放大的效果相关推荐

  1. Android开发之QQ空间效果(QQ空间下拉图片放大,松手后回弹)

    Android开发之QQ空间效果(QQ空间下拉图片放大,松手后回弹) 腾讯QQ空间的下拉图片放大,松手后回弹的效果带来的视觉差异效果让许多移动开发者心动不已,经本人一段时间的研究,终于实现了该视差效果 ...

  2. android 美团商家详情页,Android仿美团团购详情页下拉图片放大效果,简单可直接用在项目中...

    一:介绍 大家在项目中,可能需要像美团团购详情页面下拉的时候美食图片放大的效果,在这里就给大家介绍如何实现这种效果,只有很少的代码,而且控件全部是安卓源生控件. 二:运行效果图 三.然后来看看如何实现 ...

  3. native下拉图片放大 react_RN下拉图片放大 - Chason-洪的个人空间 - OSCHINA - 中文开源技术交流社区...

    修改于第三方插件https://github.com/lelandrichardson/react-native-parallax-view 为何修改? 官方的原效果: 实际我所需要的效果: 如上图所 ...

  4. TableView下拉图片放大

    2019独角兽企业重金招聘Python工程师标准>>> -(void)scrollViewDidScroll:(UIScrollView *)scrollView{CGFloat o ...

  5. 导航栏透明度渐变; 下拉头视图拉伸效果;勾号动画; 一段文字中点击部分可响应不同事件...

    之前通过设置navigationBar的barTintColor设置导航栏颜色,然后拿到self.navigationController.navigationBar.subviews.firstOb ...

  6. bootstrap-select实现下拉框多选效果

    bootstrap-select实现下拉框多选效果 听语音 在学习bootstrap实现下拉多选效果的时候,觉得该效果很好,所以拿来分享下,这里就不详细的描述了,直接附上代码给各位看看 方法/步骤 1 ...

  7. 怎么在html5中制作下拉导航栏,在PPT中制作下拉式导航菜单效果的方法

    为了提高PPT演示文稿的观赏性,用户可能希望在PPT幻灯片中添加下拉式导航菜单效果,通过该导航菜单在不同幻灯片间进行导航(如图1所示),制作下拉式导航菜单的具体操作步骤如下. 图1 下拉式导航菜单 ( ...

  8. 高仿IOS下拉刷新的粘虫效果

    最近看需要做一款下拉刷新的效果,由于需要和Ios界面保持一致,所以这用安卓的方式实现了ios下的下拉刷新的粘虫效果. 最新的安卓手机版本的QQ也有这种类似的效果,就是拖动未读信息的那个红色圆圈,拖动近 ...

  9. 微信小程序 通过wx.redirectTo,实现单页面刷新效果 & 下拉刷新页面数据效果

    微信小程序 通过wx.redirectTo,实现单页面刷新效果 & 下拉刷新页面数据效果 一: 使用 wx.redirectTo(),实现页面刷新数据效果 API说明: 关闭当前页面,跳转到应 ...

最新文章

  1. thinkphp3.2 验证码生成和点击刷新验证码
  2. 基于线性SVM的CIFAR-10图像集分类
  3. linux驱动层获取当前的系统时间
  4. asp.net ajax回调函数
  5. android 颜色反转 api,来自Android camera2 API的图像数据在Galaxy S5上翻转和压缩
  6. 半自动化运维之快速连接到指定环境(一)
  7. 微信拍卖_简析微信古玩艺术品拍卖平台的崛起
  8. 【语音识别】基于matlab高斯混合模型(GMM)说话人识别【含Matlab源码 574期】
  9. 【重要通知】关于免费升级至神策分析 2.3 版本的说明
  10. 4.6 Data符号调制——16QAM
  11. SpringBoot拦截器和过滤器的一起使用
  12. 关于程序员的面试于自我介绍模板
  13. C++综合练习——身份证
  14. redis优化,bigkey,hotkey,配置优化,缓存雪崩、缓存穿透、缓存击穿
  15. x的y次方python表达式怎么写_x 的 y 次方(xy) 以下表达式正确的是________
  16. 教你检查Mac电池的健康度
  17. 小白学习MySQL - 聊聊数据备份的重要性
  18. 量化选股 聚宽学习获取财务数据
  19. 数理统计方差齐性检验Python实现
  20. 什么是token?Android中token的使用讲解

热门文章

  1. ArcGIS JS API加载GeoServer发布的WFS服务
  2. dos拼接字符串以及截取字符串
  3. 干货 | 云计算时代携程的网络架构变迁
  4. 如果把线程当作一个人来对待,所有问题都瞬间明白了
  5. 单日2000W+订单,如何忙中不错?美团外卖业务异常检测实践详解
  6. 漫画科普 | 5G到底是个什么玩意儿?
  7. Spring Boot 2.x 新特性总结及迁移指南
  8. Java集合:数组的使用
  9. Spring Boot中文乱码问题怎么解决(按步骤做)
  10. python局部变量想作用于全局_python 局部和全局作用域