思路:
將自定義的headerview作為tableview的子視圖放到tableView上面瀑志,而不是作為tableView.tableHeaderView霉咨,然后設(shè)置tableView的contentInset為合適的值小槐,在tableView滑動的時候淮捆,動態(tài)改變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];
實現(xiàn)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);
? ? }
}