关于顶部图片下拉放大,在用户展示的个人中心显示用户个人头像信息,设置UITableView的headerView实现,UITableView继承自UIScrollView,同样的设置UIScrollView的顶部图片也可以实现同样的效果,简单看一下实现的效果:

控制器中设置需要的属性变量:

@property  (strong,nonatomic)  UITableView  *tableView;
@property  (strong,nonatomic)  NSArray      *data;
@property   (strong,nonatomic) UIView       *tableHeaderView;
@property  (strong,nonatomic)  UIImageView  *imageView;

初始化属性:

-(UITableView *)tableView{if (!_tableView) {_tableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 0,SCREENWIDTH, SCREENHEIGHT)];_tableView.delegate=self;_tableView.dataSource=self;_tableView.showsVerticalScrollIndicator=NO;_tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;[_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CellIdetifier];}return _tableView;
}-(UIView *)tableHeaderView{if (!_tableHeaderView) {_tableHeaderView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0,SCREENWIDTH, 100)];}return _tableHeaderView;
}-(UIImageView *)imageView{if (!_imageView) {_imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, SCREENWIDTH, 100)];_imageView.autoresizingMask=UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;_imageView.clipsToBounds=YES;_imageView.contentMode=UIViewContentModeScaleAspectFill;}return _imageView;
}

UITableViewDelegate实现:

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{return 1;
}-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{return [self.data count];
}-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{UITableViewCell  *cell=[tableView dequeueReusableCellWithIdentifier:CellIdetifier];[cell.textLabel setText:self.data[indexPath.row]];return cell;
}

 ViewDidLoad中初始化imageView:

    self.data=@[@"FlyElephant",@"博客园",@"UITableView图片放大",@"http://www.cnblogs.com/xiaofeixiang/"];self.imageView.image=[UIImage imageNamed:@"Girl"];self.imageView.contentMode=UIViewContentModeScaleAspectFill;[self.tableHeaderView addSubview:self.imageView];self.tableView.tableHeaderView=self.tableHeaderView;[self.view addSubview:self.tableView];

在UITableViewView向下拉动的过程中,改变imageView的位置:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{CGPoint offset = scrollView.contentOffset;if (offset.y < 0) {CGRect rect =self.tableHeaderView.frame;rect.origin.y = offset.y;rect.size.height =CGRectGetHeight(rect)-offset.y;self.imageView.frame = rect;self.tableHeaderView.clipsToBounds=NO;}
}

 实现起来比较简单,希望对有需要的人有所帮助~

转载于:https://www.cnblogs.com/xiaofeixiang/p/5129073.html

iOS开发-UITableView顶部图片下拉放大相关推荐

  1. 安卓吸顶+下拉放大_Android自定义scrollView实现顶部图片下拉放大

    本文实例为大家分享了scrollView实现顶部图片下拉放大的具体代码,供大家参考,具体内容如下 之前的scrollView顶部图片下拉放大在之后的项目用到了几次,但没次都写在Activity中很麻烦 ...

  2. AnroidQQ空间头部图片下拉放大

    看到别人写的类似QQ空间下拉放大的效果,看了代码后,感觉好复杂.代码量太多.那么有没有简单点的方法呢,.答案肯定是有的,本例子有很多干货,看见的朋友不要错过哦. 免积分下载地址:http://down ...

  3. iOS开发 导航栏渐变 图片下拉放大 导航栏移动 仿QQ 微博 知乎导航栏

    开发中,我们时常会遇到导航栏颜色渐变,导航栏移动等功能;只需要复制以下系统和自定义导航栏代码到你新建的文件中,然后仿照试图控制器所举的例子使用即可,简单易用,别忘记在单例里面实现以下方法用以设置导航栏 ...

  4. ios 上滑隐藏导航下拉显示导航栏实现

    为了最大限度的利用手机屏幕,出现了上滑隐藏导航下拉显示导航栏. 先看看效果(代码:http://download.csdn.net/detail/gx_wqm/9771247), 把代码跑一下看一下是 ...

  5. iOS 图片下拉变大

    前言 在iOS的开发中TableView和ScrollView是可以上下滑动的,但是在下拉的过程中,顶部会出现留白的现象,于是就出现了类似于QQ空间中那样下拉顶部的图片变大的效果.看起看很高大上,其实 ...

  6. 【SwiftUI模块】0012、SwiftUI-搭建一个类似微博、网易云、抖音个人页面的头部下拉放大图片效果

    SwiftUI模块系列 - 已更新11篇 SwiftUI项目 - 已更新1个项目 往期Demo源码下载 技术:SwiftUI.SwiftUI3.0.下拉放大.tableview粘性头部.头部下拉放大图 ...

  7. iOS开发------简单实现图片多选功能(Photos.framework篇)

    Photos.framework是iOS8后苹果推出的一套替代AssetsLibrary.framework获取相册资源的原生库,至于AL库,欢迎大家给博文iOS开发--简单实现图片多选功能(Asse ...

  8. js禁止苹果页面底部滚动_Vue.js 实现禁止 h5 页面在 ios 浏览器内置的下拉 bounce 效果...

    介绍 vue-disbounce是一款基于Vue.js的自定义组件,可以有效避免触发h5页面在ios浏览器内置的下拉bounce效果. 组件 :style="{'background-col ...

  9. IOS开发基础之图片轮播器-12

    IOS开发基础之图片轮播器-12 核心代码 // // ViewController.m // 12-图片轮播器 // // Created by 鲁军 on 2021/2/2. //#import ...

最新文章

  1. Java 调用Oracle的存储过程
  2. iOS开发-开发总结
  3. feign调用soap_Spring Cloud 组件 —— feign
  4. miui12怎么自定义开机动画_MIUI12正式官宣,5天后发布!网友:发布是发布,12月才能更新?...
  5. 如何简单解释 MapReduce算法
  6. mysql 数据库中根据当前系统时间,取前后几秒、几分钟、几小时、几天
  7. c语言里变量要求,c语言中要求对变量作强制定义的主要理由是什么?
  8. 华为ensp安装包及安装教程(详细版)
  9. Zotero批量下载知网文献
  10. Android 本地化翻译插件,解放你的双手! AndroidLocalizePlugin
  11. 腾讯云API弹性公网IP踩坑
  12. 中国供应链金融行业全景调研与发展战略研究规划报告2022-2028年版
  13. vue中svg转png下载
  14. backgroundLinearGradient线性渐变制作折角效果
  15. matplotlib绘制三维图
  16. Bluetooth Profile Specification之1.2 A2DP 之Audio Codec(音频编解码器)-MPEG-1,2 Audio和MPEG-2, 4 AAC
  17. 5 Mysql数据保护
  18. RK3399平台开发系列讲解(SPI子系统)4.36、SPI子系统驱动框架详解
  19. Android应用启动之从Launcher拉起APP(二)
  20. SIM卡的ICCID、IMSI

热门文章

  1. 对Document library中修改文档的Author之实现修改在list(三)
  2. Java程序员进阶——Spring依赖注入原理分析
  3. flexi-streams用法简介
  4. ffmpeg支持x264插件
  5. 点击一个按钮,弹出6个按钮
  6. 表单验证Jquery扩展方法类
  7. 解决tomcat was unable to start within问题
  8. 是男人就下100层【第一层】——高仿微信界面(4)
  9. Lua脚本语言快速入门手册
  10. Java中如何实现j并发更新数据库同一条数据