iOS开发-UITableView顶部图片下拉比例放大

2016-11-07  本文已影响0人  沉默的鱼sunny

UITableViewHeaderView下拉时图片按照比例放大

  1. 默认情况下,图片正常显示(没有被拉大)
UIView *testHeadView = [[UIView alloc]initWithFrame:CGRectMake( 0, 0, kScreenW, (kScreenH - 64) * 0.2)];
    self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake( 0, 0, kScreenW, (kScreenH - 64) * 0.2)];
    self.imageView.image = [UIImage imageNamed:@"desktop"];
//    self.imageView.hidden = YES;
    [testHeadView addSubview:self.imageView];
    
    self.tableView = [[UITableView alloc] initWithFrame:CGRectMake( 0, 0, kScreenW, kScreenH )];
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    self.tableView.tableHeaderView = testHeadView;
    [self.view addSubview:_tableView];
  1. 当往下拉动的时候,图片等比例放大
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    //同比例整体放大
    //滑动距离
    CGFloat yOffset = scrollView.contentOffset.y;
    // 偏移的y值
    if(yOffset < 0)
    {
        CGFloat totalOffset = (kScreenH - 64) * 0.2 + ABS(yOffset);
        CGFloat f = totalOffset / ((kScreenH - 64) * 0.2);
        //拉伸后的图片的frame应该是同比例缩放。
        _imageView.frame =  CGRectMake(- (kScreenW * f - kScreenW) / 2, yOffset, kScreenW * f, totalOffset);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读