UITableView+UIHeadView上控件位置不动+UIImageView 下拉放大
来源:互联网 发布:ie浏览器不能登陆淘宝 编辑:程序博客网 时间:2024/05/18 00:00
1.要实现这个功能之前,我们先考虑一下,一个UIImageView 随着tableView 的下拉放大,我们的第一个想到的就是UIScrollerView的代理方法,由于UITableView继承UIScrollerView,因此tableView也具有UIScrollerView 的代理方法,因为UIIMageView 的放大是随着下拉UITableView 的变化而变化的,从中可读取contentOffset 属性已确定其滚动到的位置,常用如下方法:-(void)scrollViewDidScroll:(UIScrollView *)scrollView。
2.下面我们直接说说如何实现(含代码)
(1). 定义一个tableView的headView
UIView *headerView=[[UIViewalloc] initWithFrame:CGRectMake(0,0,SCREEN_WIDTH,180)];
headerView.userInteractionEnabled=YES;
(2.)定一个一个UIImageView *backgroundImg=[[UIImageViewalloc] initWithFrame:CGRectMake(0,0,SCREEN_WIDTH,KPersonHeadHeight)]
[backgroundImg setImage:[UIImage imageNamed:@"member_bg"];
backgroundImg.userInteractionEnabled=YES;
(3) 定义一个UIView为personHeadView,这个控件的作用就是距离tableViewHeadView 的底部距离一直不变。然后将该控件加到backgroundImg上。
[headerView addSubview:backgroundImg];
最后把 headerView 赋值为tableViewHeadView。
(3).最为关键的代码在这里
/****************************************************核心代码***********************************/
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat yOffset=scrollView.contentOffset.y;
if(yOffset<0){
CGFloat totalOffset=180+ABS(yOffset);
backgroundImg.frame=CGRectMake(0,yOffset,SCREEN_WIDTH,totalOffset);
personHeadView.frame=CGRectMake(0,totalOffset-180,SCREEN_WIDTH,180); 这个是tableViewHeadView 上的固定控件(距离tableViewHeadView底部距离一直不变)
}else{
CGFloat alpha=fabs(yOffset)/(180-64);
self.navIV.backgroundColor=[UIColorcolorWithRed:253.0/255.0fgreen:131.0/255.0fblue:147.0/255.0falpha:alpha];
}
}
- UITableView+UIHeadView上控件位置不动+UIImageView 下拉放大
- UITableView透视图下拉放大.
- UITableView下拉放大效果
- UITableView 下拉放大
- 下拉UITableview实现图片放大效果
- UITableView下拉顶部图片放大效果
- UITableView 下拉header放大,statusBar改变颜色
- QZone下拉图片放大控件
- UITableView 下拉 上啦 刷新
- UITableView上拉、下拉原理
- 超简单的UITableView下拉放大的动画
- UITableView头部ImageView下拉放大效果,导航栏透明渐变
- UITableView头部带有图片并且下拉图片放大效果
- 仿QQ控件图片下拉放大效果
- 仿QQ空间头部下拉放大控件
- 图片下拉放大 导航栏下拉隐藏 上拉出现
- UITableView上拉与下拉刷新
- UITableView 上拉刷新,下拉刷新
- apache 和 nginx 的区别
- 程序员必读书单 1.0
- GC的三种收集方法
- Mybatis最入门---映射文件(1)
- Python中 单引号,双引号和三引号的区别
- UITableView+UIHeadView上控件位置不动+UIImageView 下拉放大
- Java集合 问题集中
- [leetcode] 219. Contains Duplicate II
- shell 小符号的使用
- Mybatis最入门---映射文件(2)
- 一些CS相关的公开课资料
- android高级面试题目
- 常用正则表达式大全,手机、电话、邮箱、身份证(最严格的验证)、IP地址、网址、日期等,一般前台js验证,来这里就够了...
- Mybatis最入门---ResultMaps基本用法