下拉放大 上推隐藏

现在很多的app都有这个功能

先上效果图






#define IMAGEHEIGHT    200.0f

#define MAINSCREENWIDTH [UIScreen mainScreen].bounds.size.width

先添加两个UIImageView

//大图片

_zoomImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, IMAGEHEIGHT)];

_zoomImageView.image = [UIImage imageNamed:@"iPhone_personal_head_bg"];

_zoomImageView.contentMode = UIViewContentModeScaleAspectFill;

[self.view addSubview:_zoomImageView];

// 小图片

_littleImageView = [[UIImageView alloc] initWithFrame:CGRectMake(MAINSCREENWIDTH/2 - 50, 50, 100, 100)];

_littleImageView.image = [UIImage imageNamed:@"loadingIcon"];

[_zoomImageView addSubview:_littleImageView];

//添加一下渐变暗视图

_effectView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, IMAGEHEIGHT)];

_effectView.backgroundColor = [UIColor blackColor];

[_zoomImageView addSubview:_effectView];

//图片下是一个表格


//当滚动时动态计算高度

CGFloat changeY = 0.0;

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

CGFloat y = scrollView.contentOffset.y; //如果有导航控制器,这里应该加上导航控制器的高度64

changeY = y + 200;

NSLog(@"%lf",y);

if (y< -IMAGEHEIGHT) {

CGRect frame = _zoomImageView.frame;

frame.size.height = -y;

_zoomImageView.frame = _effectView.frame = frame;

CGPoint center = _littleImageView.center;

NSLog(@"changeY %lf",changeY);

center.y = 100-changeY/2;

_littleImageView.center = center;

}else{

_effectView.alpha = 1 + y/200;

}

changeY -= y;

}

这样就能简单实现上推隐藏 下拉放大 小图片大小不变的效果


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文介绍的是系统自带的二维码扫描!方便简单实用。-----话不多说,直接上干货! 三步就搞定!!!!!!! ...
    zhangyajie阅读 1,264评论 8 2
  • VLC的集成和使用 VLC介绍 VLC Media Player (VideoLAN) 为 Windows、Lin...
    Pocket阅读 20,010评论 75 66
  • 好讨厌啊!心情一点也开心不起来,越来越觉得压抑。好想逃避这里越远越好……不想对上他们的面孔,更不敢看他们的眼睛。有...
    一只胖鹿阅读 207评论 0 0
  • 冬天是应该去看看残阳的,风轻云淡里的一抹微红,像是从北方的红泥火炉里燃烧着的火焰,充满了回忆和苍凉,远远的映照着...
    艺术家清樾阅读 783评论 0 4
  • 一句话说出你的目标:8月—10月三个月财富收入七万 今天我想认真为自己做的最勇敢,因为笃信这宇宙定律而做的事。 上...
    黛儿微笑阅读 201评论 2 2