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方法里。
- (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方法里。
相关文章推荐
- android 代码实现控件之间的间距
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- [Android]在代码里运行另一个程序的方法
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- 肯特·贝克:改变人生的代码整理魔法
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 网页恶意代码的预防
- 高手写的Tracer-Flash代码调试类代码下载
- CSS代码缩写技巧
- 非主流Q-zOne代码代码搜集第1/2页
- CreateWeb.vbs 代码
- Lua中编译执行代码相关的函数详解
- 更有效率的css代码编写第1/3页
- 代码中到底应不应当写注释?
- SQL语言查询基础:连接查询 联合查询 代码
- 论坛头像随机变换代码