iOS实现悬浮、下拉放大tableviewHeaderView动画效果

思路:

将自定义的headerview作为tableview的子视图放到tableView上面,而不是作为tableView.tableHeaderView,然后设置tableView的contentInset为合适的值,在tableView滑动的时候,动态改变headerview的位置和者大小,使headerview有悬浮、下拉放大的动画效果。

代码如下:

UITableView *tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT) style:UITableViewStyleGrouped];

tableView.dataSource = self;

tableView.delegate = self;

tableView.contentInset = UIEdgeInsetsMake(200, 0, 0, 0);

self.tableView = tableView;


headerImage = [[UIImageView alloc]initWithFrame:CGRectMake(0, -200, SCREEN_WIDTH, 200)];

headerImage.image = [UIImage imageNamed:@"girl.jpg"];

headerImage.contentMode = UIViewContentModeScaleAspectFill;

headerImage.clipsToBounds = YES;


[self.view addSubview:self.tableView];

[self.tableView addSubview:headerImage];

实现ScrollView代理方法:

#pragma mark - ScrollView代理方法

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

    if (scrollView == self.tableView) {

        CGFloat offset_y = scrollView.contentOffset.y;

        headerImage.frame = CGRectMake(0, offset_y, SCREEN_WIDTH, -offset_y);

    }

}

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

推荐阅读更多精彩内容