1. #import "HMViewController.h"
  2.  
  3. const CGFloat ICITopViewH = ;
  4.  
  5. @interface HMViewController ()
  6. @property (nonatomic, weak) UIImageView *topView;
  7. @end
  8.  
  9. @implementation HMViewController
  10.  
  11. - (void)viewDidLoad
  12. {
  13. [super viewDidLoad];
  14.  
  15. // 设置内边距(让cell往下移动一段距离)
  16. self.tableView.contentInset = UIEdgeInsetsMake(ICITopViewH * 0.5, , , );
  17.  
  18. UIImageView *topView = [[UIImageView alloc] init];
  19. topView.image = [UIImage imageNamed:@"biaoqingdi"];
  20. topView.frame = CGRectMake(, -ICITopViewH, , ICITopViewH);
  21. //设置UUIImageView的内容显示模式。来实现下拉放大的关键
  22. topView.contentMode = UIViewContentModeScaleAspectFill;
  23. //插入到tableView的第一个子控件,使用addSubView的话,下拉会把底部的Cell遮挡。
  24. [self.tableView insertSubview:topView atIndex:];
  25. self.topView = topView;
  26. }
  27.  
  28. #pragma mark - 数据源方法
  29. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  30. {
  31. return ;
  32. }
  33.  
  34. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  35. {
  36. static NSString *ID = @"cell";
  37. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
  38. if (!cell) {
  39. cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
  40. }
  41.  
  42. cell.textLabel.text = [NSString stringWithFormat:@"测试数据---%ld", (long)indexPath.row];
  43.  
  44. return cell;
  45. }
  46.  
  47. - (void)scrollViewDidScroll:(UIScrollView *)scrollView
  48. {
  49. // 向下拽了多少距离
  50. CGFloat down = -(ICITopViewH * 0.5) - scrollView.contentOffset.y;
  51. if (down < ) return;
  52.  
  53. CGRect frame = self.topView.frame;
  54. // 5决定图片变大的速度,值越大,速度越快
  55. frame.size.height = ICITopViewH + down * ;
  56. self.topView.frame = frame;
  57. }
  58.  
  59. @end

iOS实现下拉放大的功能的更多相关文章

  1. iOS YSDropdownMagnify 下拉放大,向上导航显示

    要实现的效果如上.在实际开发中,我们会使用到三种方式来实现. 通过隐藏导航栏,自定义导航View 改变原生导航栏背景透明 原生导航栏通过添加背景图片改变 个人是比较喜欢第二种. github下载地址: ...

  2. IOS下拉放大图片

    代码地址如下:http://www.demodashi.com/demo/11623.html 一.实现效果图 现在越来越多的APP中存在下拉放大图片的效果,今天贡献一下我的实现这种方法的原理,和我遇 ...

  3. iOS开发-UITableView顶部图片下拉放大

    关于顶部图片下拉放大,在用户展示的个人中心显示用户个人头像信息,设置UITableView的headerView实现,UITableView继承自UIScrollView,同样的设置UIScrollV ...

  4. iOS tableView下拉图片放大

    事实上这个效果,本质上就是在你tableView下拉 造成offset时候. 保持你顶部图片的y坐标点还停留在下拉时屏幕的顶点(offset), 而图片的长度变为原始的height长度-(offset ...

  5. refreshcontrol 实现下拉刷新的功能

    该组件实现下拉刷新的功能.不过该组件是用在ScrollView的内部的,为ScrollView添加一个下拉刷新的功能.当ScrollView的垂直方向的偏移量scrollY:0的时候,手指往下拖拽Sc ...

  6. IOS 开发下拉刷新和上拉加载更多

    IOS 开发下拉刷新和上拉加载更多 简介 1.常用的下拉刷新的实现方式 (1)UIRefreshControl (2)EGOTTableViewrefresh (3)AH3DPullRefresh ( ...

  7. 在win8中如何实现下拉刷新的功能

      现在我以listview为例来讲述下拉刷新的功能! 在xaml中设置listview一定要设置一个这样的属性,IsSwipeEnabled=false,然后再listview控件的前面要布局下拉刷 ...

  8. 原生javascript实现 下拉框搜索功能

    由于业务需求,要实现 一个下拉框搜索功能.这个下拉功能和百度的还是有点区别的,百度的是时时与服务器交互的,而这个只是模拟.技术点在于实现 了搜索功能. 未搜索前如下图: 搜索后: <!DOCTY ...

  9. vue-Treeselect实现组织机构(员工)下拉树的功能

    知识点:前端使用vuetree的组件库,调用后台查询组织机构,包括人员的接口 实现下拉树的功能 查考: vue-treeselect官网:https://vue-treeselect.js.org/ ...

随机推荐

  1. 【网络优化】Batch Normalization(inception V2) 论文解析(转)

    前言 懒癌翻了,这篇不想写overview了,公式也比较多,今天有(zhao)点(jie)累(kou),不想一点点写latex啦,读论文的时候感觉文章不错,虽然看似很多数学公式,其实都是比较基础的公式 ...

  2. 转载 - POJ分类很好很有层次感

    from http://blog.csdn.net/zzycsx/article/details/49103451 OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2 ...

  3. Objective C NSString 编码成URL 特殊字符处理

    找了一下网上的教程都是使用类似以下代码,Xcode提示这个CoreFoundation不受ARC管理,所以折中的方式是添加__bridge. NSString *encodedValue = (__b ...

  4. maven spring MVC 及tomcat

    eclipse+tomcat8+springMVC环境搭建https://blog.csdn.net/code_fighter/article/details/79169058 Eclipse+Tom ...

  5. java自带的MD5

    前言:        MD5可生成16.32.64位数的签名. // MD5加码,32位 public static String toMD5(String plainText) { String r ...

  6. jquery插件之jquery-ui

    1.jQuery UI是在jQuery的基础上,利用jQuery的扩展性,设计的插件.提供了一些常用的界面元素,如:模态框.日期控件等. 2.下载地址:http://jqueryui.com/down ...

  7. 做文件上传下载时报这个错com.alibaba.fastjson.JSONException: illegal identifier : \

    ::-exec-] DEBUG c.i.e.m.I.insertDataEmebeding - <== Updates: ::-exec-] ERROR c.i.e.c.CaseArchiveC ...

  8. elasticsearch 集群的安装部署

    一 介绍 elasticsearch 是居于lucene的搜素引擎,可以横向集群扩展以及分片,开发者无需关注如何实现了索引的备份,集群同步,分片等,我们很容易通过简单的配置就可以启动elasticse ...

  9. 这真是奇葩的js题目

    url:http://javascript-puzzlers.herokuapp.com/ 有兴趣的可以一看,算是比较偏门自我感觉

  10. 2.SpringMVC源码分析:DispatcherServlet的初始化与请求转发

    一.DispatcherServlet的初始化 在我们第一次学Servlet编程,学java web的时候,还没有那么多框架.我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根 ...