视图层级:由于这是在原有的视图层级的基础上完成的放大功能,所以记录了一下计算方法,
tableview 和 放大的背景图片都是self.view的子视图,下拉的时候要方法,上滑的时候要同步上移图片
核心代码
[self.view addSubview:self.heardBgView];
[self.view sendSubviewToBack:self.heardBgView];
self.heardBgView.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_WIDTH * 223 /375);
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
CGFloat offsetY = scrollView.contentOffset.y;
//-35 是初始偏移量
if (offsetY <= (-35)) {
CGFloat moreHeight = - MIN(self.contentInsetTop, offsetY) - self.contentInsetTop;
moreHeight = MAX(0, moreHeight);
self.heardBgView.frame = CGRectMake(0, 0 , self.heardBgView.frame.size.width, SCREEN_WIDTH * 223 / 375 + moreHeight);
} else {
/*
初始偏移量- 35 , 当前偏移量 offsety ,
变化的偏移量 (offsety - (- 35))
原始位置要做相反的变化量
即 - (offsety - (-35));
*/
self.heardBgView.frame = CGRectMake(0, 0 - (offsetY - (-35)), self.heardBgView.frame.size.width, SCREEN_WIDTH * 223 / 375);
}
}