美文网首页IOSUITableVIew征服iOS
实现tableView上headerView图片下拉变大效果

实现tableView上headerView图片下拉变大效果

作者: 呼噜ZR | 来源:发表于2016-03-08 18:07 被阅读2934次

现在很多app设置了这样的效果,如何实现这一效果呢,其实只需要简单的两个方法,那么我们直接上代码

首先我们在storyBoard里拖一个tableView并设置Navigation,接下来我们在tableView中设置图片
我是自己写了个方法然后在viewDidLoad中调用,也可以直接在viewDidLoad中设置

-(void)setlayoutHeaderView{
    //设置一个view,为了使将图片添加到这个view上
    UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 200)];
    //添加图片
    self.imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 200)];
    self.imageView.image = [UIImage imageNamed:@"12"];
    [aView addSubview:self.imageView];
    self.tableView.tableHeaderView = aView;
    
}
设置图片效果

设置好图片后,我们需要设置下拉变化,如果实现这一效果呢?我们知道 UITableViewController是继承于scrollView,那么我们可以在tableViewController调用scrollView的方法

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
//获取偏移量
    CGPoint offset = scrollView.contentOffset;
    //判断是否改变
    if (offset.y < 0) {
        CGRect rect = self.imageView.frame;
  //我们只需要改变图片的y值和高度即可
        rect.origin.y = offset.y;
        rect.size.height = 200 - offset.y;
        _imageView.frame = rect;
    }
    
}

这样我们就实现了这一效果()

下拉变大的效果

相关文章

网友评论

  • 乐视薯片:这样放大 最上面 会出来空白,如果想实现 从顶部开始 怎么弄呢
    Summer丶YP:这个好用,http://www.cnblogs.com/lyl-/p/4994418.html
  • 0x00chen:楼主如果想实现整体放大该怎么设置orign.x????? :blush:
  • 追风筝的荧火虫:太好了,找了这么久终于找到这个,之前找了很多都是说设置tableView的偏移量,设置偏移量的话表头老出错,现在好了
  • wittyfan:明天试试
  • ryugaku:回去试试٩( 'ω' )و
  • 焚琴煮鹤de我:试过放到tableviewheadfooterview中,还是要单独去拉imageView的说
    呼噜ZR:@焚琴煮鹤de我 :stuck_out_tongue_closed_eyes: 谢谢指出,确实存在这个情况,楼主做这个的时候只考虑到了header这一个情况,毕竟还是这个情况比较常用

本文标题:实现tableView上headerView图片下拉变大效果

本文链接:https://www.haomeiwen.com/subject/ewyzkttx.html