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);

    }

}

你可能感兴趣的:(iOS实现悬浮、下拉放大tableviewHeaderView动画效果)