效果图
效果图参考代码
设置tableview表头
self.originalFrame = CGRectMake(0, 0, self.view.bounds.size.width, headerViewHeight);
UIView * headerView = [[UIView alloc]initWithFrame: self.originalFrame];
headerView.backgroundColor = [UIColor redColor];
self.tableview.tableHeaderView= headerView;
// 需要在创建一个imageView 放图片,g如果直接用imageView 作为headerView,tablview 容易错位变形
UIImageView * imageView = [[UIImageView alloc]initWithFrame: self.originalFrame];
imageView.backgroundColor = [UIColor blueColor];
imageView.image = [UIImage imageNamed:@"headerView"];
self.imageView = imageView;
[self.view addSubview:imageView];
在scrollViewDidScroll:方法中处理滑动操作
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat yOffset = scrollView.contentOffset.y;
if (yOffset > 0) {
// 向上滑动
CGRect frame = self.originalFrame ;
frame.origin.y = frame.origin.y - yOffset;
self.imageView.frame = frame;
}else{
// 向下滑动,会放大
CGRect frame = self.originalFrame ;
frame.size.height = frame.size.height - yOffset;
frame.size.width = frame.size.height * (self.originalFrame.size.width / self.originalFrame.size.height);
frame.origin.x = frame.origin.x - (frame.size.width - self.originalFrame.size.width) * 0.5;
self.imageView.frame = frame;
}
}
网友评论