iOS UI开发--下拉放大

1. 要实现的效果,左图为下拉前,右图为下拉后

 

2.首先最容易想到的是往tableHeaderView上,放一张图片.

但是tableHeaderView的宽度是固定的,这就意味着不容易做缩放效果;

 顶部的上边界始终和tableView的上边界挨着,这就意味着下拉前只显示部分图片的效果,不容易实现.

3.最终方案:给tableView添加一张图片作为子视图, 并且图片应该在cell的下面,一开始图片只显示一部分

4. 示例代码

  4.1 在ViewDidload方法中:  

UIImage *a = [UIImage imageNamed:@"Image"]

UIImageView *imageV = [[UIImageView alloc] init];

[imageV setImage:[UIImage imageNamed:@"Image.jpg"]];

  4.2 设置图片的frame

  imageV.frame = CGRectMake(0, -150, 320, 300); // 300是随便设的,y的数值设为300的一半,方便计算

  [self.tableView addSubview:imageV]; // 先尝试addSubView

  4.3 现在图片是把cell遮挡,可以设置tableView的contentInset: 左图是设置contentInset之前,右图是设置之后

  self.tableView.contentInset = UIEdgeInsetsMake(150, 0, 0, 0);

  4.4 为了让图片开始时,只露部分,就要改图片的Y值,至此就实现了下拉不缩放的效果,见右图

  imageV.frame = CGRectMake(0, -300, 320, 300);

  

  4.5 要舰艇tableView的滚动,用scrollView的代理方法 - (void)scrollViewDidScroll:(UIScrollView *)scrollView;

    第1种思路: 1>在代理方法内,算出滚动的距离

          2>imageView的高=原高+滚动的距离

          3>根据新算出的高,由原来长宽比例算出图片的宽

          4>imageView的Y值不用算,但是要根据宽算出X值,算出的X值,要让图片水平居中显示

    总之很繁琐.

    第2种思路: 1>在代理方法内,算出滚动的距离

           2>imageView的高=原高+滚动的距离

            3>设置图片的内容模式,设置为 ScaleAspectFill = 缩放+ 等比例+ 填满

   imageV.contentMode = UIViewContentModeScaleAspectFill; //在ViewDidLoad里

     //在代理方法里:

     float distance =  - self.tableView.contentOffset.y - 150;

      self.imageV.height = 300 + distance  ;

   4.6 修复往上拉时,图片下边界和cell之间产生距离的问题

     float distance =  - self.tableView.contentOffset.y - 150;

     if (distance < 0) return ;

      self.imageV.height = 300 + distance  ;

   4.7 修复往下拉,图片放大时,会遮挡cell的问题

       [self.tableView insertSubview:imageV atIndex:0];

    

时间: 2024-12-26 07:46:38

iOS UI开发--下拉放大的相关文章

iOS:tableView表头下拉放大的效果

现在很多app设置了这样的效果,如何实现这一效果呢,其实只需要简单的两个方法,那么我们直接上代码 首先我们在storyBoard里拖一个tableView并设置Navigation,接下来我们在tableView中设置图片我是自己写了个方法然后在viewDidLoad中调用,也可以直接在viewDidLoad中设置 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 2

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

关于顶部图片下拉放大,在用户展示的个人中心显示用户个人头像信息,设置UITableView的headerView实现,UITableView继承自UIScrollView,同样的设置UIScrollView的顶部图片也可以实现同样的效果,简单看一下实现的效果: 控制器中设置需要的属性变量: @property (strong,nonatomic) UITableView *tableView; @property (strong,nonatomic) NSArray *data; @proper

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

IOS 开发下拉刷新和上拉加载更多 简介 1.常用的下拉刷新的实现方式 (1)UIRefreshControl (2)EGOTTableViewrefresh (3)AH3DPullRefresh (4)MJRefresh (5)自己实现 2.AH3DPullRefresh实现下拉刷新和上拉下载的步骤 添加UIScrollView+AH3DPullRefresh.h 和UIScrollView+AH3DPullRefresh.m两个文件,由此可知,它是基于UIScrollView的方法. 在bu

iOS 使用TableView实现下拉放大

第一步: 布置需要放大的TopView: 1. 创建TopView UIImageView *topView = [[UIImageView alloc] init]; 2. 设置图片 UIImage *image = [UIImage imageNamed:@"Big.jpg"]; topView.image = image; 3. 设置TopView的初始位置及内容模式 // 初始位置 topView.frame = CGRectMake(0, -TopViewH, ScreenW

动画特效十:下拉放大

今天继续我们的动画之行.这一次讲解的动画效果,在很多app中都能见到,就是下拉放大图片的效果.先看看效果图. 注:UITableView中内容的展示,不是本节的重点,所以忽略不计. 一.动画分析: 1. 默认情况下,图片正常显示(没有被拉大),并且导航条是隐藏的. 2. 当往下拉动的时候,图片等比例放大,并且选项卡(Tab1 和 Tab2)的View也会跟着下来. 3. 当往上推的时候,当选项卡推到导航栏正下方的时候,图片完全消失,导航栏也完全出现,并且不允许再往上推. 二.方案设计: 1. 头

iOS实现tableView下拉搜索功能

iOS实现tableView下拉搜索功能 地址:github地址 效果展示 JRSearchBar /// 搜索 -> array - (NSMutableArray *)searchTest:(NSString *)searchText InArray:(NSArray *)array;

表格的下拉放大 ----------王朋

表格下拉放大的效果是: 创建TableView和ImageView,分别设置相关属性: _tableView=[[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain]; _tableView.delegate=self; _tableView.dataSource=self; [_tableView registerClass:[UITableViewCell class] forCellReu

iOS开发——UI篇&amp;下拉弹出列表选择项效果

下拉弹出列表选择项效果 右边菜单中的按键,点击弹出一个列表可选择,选择其中一个,响应相应的事件并把文字显示在右边的菜单上:弹出下拉效果使用LMDropdownView插件,可以用POD进行加载pod ‘LMDropdownView’:LMDropdownView是把想要的视图赋给它: 源代码地址:https://github.com/JxbSir/YiYuanYunGou 效果如下: 1:在主页面先定义按键跟绑定视图(没写全的都是属性中定义了比如btnRigth,dropdownView等):

猫猫学iOS之tableView的下拉放大图片的方法

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 tableview下拉的时候上部分图片放大会 二:代码 直接上代码,自己研究吧 #import "NYViewController.h" //图片的高度 const CGFloat NYTopViewH = 350; @interface NYViewController () @property (nonatomic, weak) UIIm