(简单介绍)UITableViewHeaderView放大方法

IF(BOOL 学习= =FALSE)BOOL 落后=TRUE;不断的学习,我们才能不断的前进。 --- 五大大组合

UITableView 顶部加入图片,通过拖拽 UITableView 来实现图片的放大。

iOS动画之下拉放大,讲解的动画效果,在很多app中都能见到,就是下拉放大图片的效果。先看看效果图。 1. 默认情况下,图片正常显示(没有被拉大)。 2. 当往下拉动的时候,图片等比例放大

正常
//添加headerView方法

- (void)setLayoutHeaderView {
    
    UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 200)];

    self.headImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 200)];

    self.headImageView.image = [UIImage imageNamed:@"123.jpg"];
    [headView addSubview:self.headImageView];
    self.tableView.tableHeaderView = headView;
    
}

固定的大小,向下拖动TableView后,顶部露出了背景图片。

未实现

对于不需要下拉刷新的页面,又不想分配太大的空间来显示顶部图片,则可以选择这种。想要看大图?只要下拉TableView即可。_

设置一个 UIImageView 为 UITableView 的 tableHeaderView,设置 UITableView 的 UIScrollViewDelegate在 TableView 滚动时,动态改变 tableHeaderView 的状态。

//
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
  
    CGFloat width = [UIScreen mainScreen].bounds.size.width;
    CGFloat yOffset = scrollView.contentOffset.y  ;
    
    if (yOffset < 0) {    
        CGFloat totalOffset = 200 + ABS(yOffset);
        CGFloat f = totalOffset / 200;
    
        _headImageView.frame = CGRectMake(- (width * f - width) / 2, yOffset, width * f, totalOffset);
        
        
    }
 
}


方法实现后的效果

实现拖动列表时图片放大的效果方法
在scrollViewDidScroll内获取当前滚动坐标的y值当坐标y小于宏定义图片高度时就进行放大;放大原理是改变UIImageView的y坐标和高度,同时由于设置了contentMode属性,图片高度改变会使得宽度跟着改变,达到放大效果。

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

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 废话不多说,直接上干货 ---------------------------------------------...
    小小赵纸农阅读 3,446评论 0 15
  • 你说我改怎么说? 她到底在我心中是什么位置? 今年一年,流年不利。 似乎运气这个东西就没有再青睐过我。 气流不顺,...
    757e1413f047阅读 154评论 0 0
  • 她把自己仍在沙发上,闭着眼少了平时伶俐的眼神,脸色是说不出的落寞和疲惫,原来自己也可以平静的和他握手问好,像大多数...
    狸猫飞鱼阅读 196评论 0 1
  • 今天我跟老公一起把孩子们送去学校,孩子们有爸爸妈妈一起送他们,他们无比高兴! 先把...
    AA稳稳阅读 145评论 0 1