您的位置:首页 > 产品设计 > UI/UE

UITableView表头在下拉的时候表头里的内容放大

2015-10-13 14:28 519 查看
以下只是简单的实现一下功能,介绍一下原理,希望可以帮到大家:

- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
static NSString * identifier = @"headView";
UITableViewHeaderFooterView * headView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:identifier];
if (nil == headView) {
headView = [[UITableViewHeaderFooterView alloc] initWithReuseIdentifier:identifier];
_headView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 100)];
_headView.contentMode = UIViewContentModeScaleAspectFill;
_headView.clipsToBounds = YES;
_headView.image = [UIImage imageNamed:@"4"];
[headView addSubview:_headView];
}
return headView;
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
float offsetY = scrollView.contentOffset.y;
CGRect tempFrame = _headView.frame;
if (offsetY < 0) {
// 往下拉
int offsetX = -scrollView.contentOffset.y/4;
tempFrame.origin.x = -offsetX;
tempFrame.origin.y = offsetY;
tempFrame.size.width = CGRectGetWidth(_tabView.frame) + 2*offsetX;
tempFrame.size.height = 100 - offsetY;
}else{
tempFrame.origin.x = 0;
tempFrame.origin.y = 0;
tempFrame.size.width = CGRectGetWidth(_tabView.frame);
tempFrame.size.height = 100;
}
_headView.frame = tempFrame;
}其中_headView是一个UIImageView的成员变量,其主要操作在- (void)scrollViewDidScroll:(UIScrollView
*)scrollView方法里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS 代码 uitableview