iOS tableView下拉图片放大
Posted brucemengbm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS tableView下拉图片放大相关的知识,希望对你有一定的参考价值。
事实上这个效果,本质上就是在你tableView下拉 造成offset时候。 保持你顶部图片的y坐标点还停留在下拉时屏幕的顶点(offset), 而图片的长度变为原始的height长度-(offset ) 就达到了下拉放大的效果。
直接上代码了:
1. 首先创建一个UIView作为headerView
_topView = [[UIViewalloc]initWithFrame:CGRectMake(0,0,MCAPPWidth,80)];
_tableView.tableHeaderView =_topView;
_topImageView = [[UIImageViewalloc]initWithFrame:CGRectMake(0,0,MCAPPWidth,80)];
_topImageView.contentMode =UIViewContentModeScaleAspectFill;
_topImageView.layer.masksToBounds = YES;
[_topImageViewsd_setImageWithURL:[NSURLURLWithString:nil]placeholderImage:[UIImageimageNamed:@"mian_bg"]];
[_topViewaddSubview:_topImageView];
3.最后引入scrollView的代理方法 监听frame的变化
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (_tableView == scrollView) {
CGFloat yOffset = _tableView.contentOffset.y;
//下拉图片放大
if (yOffset < 0) {
_topView.frame = CGRectMake(0, 0, MCAPPWidth, 80 * Height - yOffset);
_topImageView.frame = CGRectMake(0, yOffset, MCAPPWidth, 80 * Height - yOffset);
NSLog(@"%.2f", _topImageView.y);
}
else {
_topView.frame = CGRectMake(0, 0, MCAPPWidth, 80 * Height - yOffset);
_topImageView.y = yOffset * 0.65;
_topImageView.height = 80 * Height - yOffset * 0.65;
}
}
}
我这里的.y是自己封装的方法直接copy会出错哦。
以上是关于iOS tableView下拉图片放大的主要内容,如果未能解决你的问题,请参考以下文章