(简单介绍)UITableViewHeaderView放大方法
2016-03-01 本文已影响3957人
师弟出马
IF(BOOL 学习= =FALSE)BOOL 落后=TRUE;不断的学习,我们才能不断的前进。 --- 五大大组合
UITableView 顶部加入图片,通过拖拽 UITableView 来实现图片的放大。
iOS动画之下拉放大,讲解的动画效果,在很多app中都能见到,就是下拉放大图片的效果。先看看效果图。 1. 默认情况下,图片正常显示(没有被拉大)。 2. 当往下拉动的时候,图片等比例放大
正常//添加headerView方法
- (void)setLayoutHeaderView {
UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 200)];
self.headImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 200)];
self.headImageView.image = [UIImage imageNamed:@"123.jpg"];
[headView addSubview:self.headImageView];
self.tableView.tableHeaderView = headView;
}
固定的大小,向下拖动TableView后,顶部露出了背景图片。
未实现对于不需要下拉刷新的页面,又不想分配太大的空间来显示顶部图片,则可以选择这种。想要看大图?只要下拉TableView即可。_
设置一个 UIImageView 为 UITableView 的 tableHeaderView,设置 UITableView 的 UIScrollViewDelegate在 TableView 滚动时,动态改变 tableHeaderView 的状态。
//
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat width = [UIScreen mainScreen].bounds.size.width;
CGFloat yOffset = scrollView.contentOffset.y ;
if (yOffset < 0) {
CGFloat totalOffset = 200 + ABS(yOffset);
CGFloat f = totalOffset / 200;
_headImageView.frame = CGRectMake(- (width * f - width) / 2, yOffset, width * f, totalOffset);
}
}
方法实现后的效果
实现拖动列表时图片放大的效果方法
在scrollViewDidScroll内获取当前滚动坐标的y值当坐标y小于宏定义图片高度时就进行放大;放大原理是改变UIImageView的y坐标和高度,同时由于设置了contentMode属性,图片高度改变会使得宽度跟着改变,达到放大效果。