ViewController.h
@interface ViewController : UIViewController<UITableViewDelegate,UITableViewDataSource> { UIImageView *_imageView; }
<p>#import "ViewController.h"</p> @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //创建表视图 UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 480) style:UITableViewStylePlain]; tableView.backgroundColor = [UIColor clearColor]; tableView.delegate = self; tableView.dataSource = self; [self.view addSubview:tableView]; //创建视图 _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 150)]; _imageView.image = [UIImage imageNamed:@"image1.jpg"]; [self.view insertSubview:_imageView belowSubview:tableView]; UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 150)]; headView.backgroundColor = [UIColor clearColor]; tableView.tableHeaderView = headView; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 40; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *iden = @"cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:iden]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:iden]; } cell.textLabel.text = [NSString stringWithFormat:@"第%d行",indexPath.row]; return cell; } - (void)scrollViewDidScroll:(UIScrollView *)scrollView { //获取到视图Y方向的偏移量 CGFloat offsetY = scrollView.contentOffset.y; CGRect frame = _imageView.frame; //向上滑动 if (offsetY > 0) { frame.origin.y = - offsetY; _imageView.frame = frame; }else { //向下滑动 //1.获取拉伸后图片的高度 CGFloat height = 150 + ABS(offsetY); //图片原来的高度/图片原来的宽度 = 图片放大后的高度/图片放大后的宽度 //150/320 = height/x //2.获取图片放大后的宽度 CGFloat width = 320 *height/150; //3.修改imageView的frame _imageView.frame = CGRectMake(-(width-320)/2, -(height-150)/2, width, height); } } @end
原文地址:http://blog.csdn.net/pengyuan_d/article/details/40682467