头部图片可伸缩的TableView

来源:互联网 发布:购物车数据在哪里看 编辑:程序博客网 时间:2024/05/10 19:26

Table列表顶部是一张大图,大图可以随着列表的下拉而放大。

其中IScrollView的代理方法scrollViewDidScroll是重点方法。


 
#import "ViewController.h"
#define Imgwidth 828
#define Imgheight 589
#define ScaleImageViewHeight ([UIScreen mainScreen].bounds.size.width*Imgheight/Imgwidth)
@interfaceViewController ()<UITableViewDelegate,UITableViewDataSource,UIScrollViewDelegate>
@property(strong, nonatomic)IBOutletUIImageView *scaleImageView;
@property(weak, nonatomic)IBOutletUITableView *tableView;
@property(strong, nonatomic)IBOutletUIImageView *noScaleImage;
@property(strong, nonatomic)IBOutletUILabel *nicknameLabel;
 
@end
 
@implementationViewController
 
- (void)viewDidLoad {
    [superviewDidLoad];
    self.tableView.delegate= self;
    self.tableView.dataSource= self;
     
}
- (void)viewWillAppear:(BOOL)animated
{
    self.tableView.contentInset= UIEdgeInsetsMake(ScaleImageViewHeight,0,0,0);
    self.scaleImageView.frame= CGRectMake(0, -ScaleImageViewHeight,self.view.frame.size.width, ScaleImageViewHeight);
    [self.tableViewaddSubview:self.scaleImageView];
    self.noScaleImage.frame= CGRectMake(20, -50,48,48);
    [self.tableViewaddSubview:self.noScaleImage];
    self.nicknameLabel.frame= CGRectMake(88, -42,80,30);
    [self.tableViewaddSubview:self.nicknameLabel];
}
 
#pragma - mark UIScrollView Delegate
- (void)scrollViewDidScroll:(UIScrollView*)scrollView
{
   CGFloaty = scrollView.contentOffset.y;
    if(y < -ScaleImageViewHeight)
    {
        CGRectframe = self.scaleImageView.frame;
        frame.size.height= -y;
        frame.origin.y= y;
        self.scaleImageView.frame= frame;
    }
}
 
#pragma - mark UITableView DataSource
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
    return20;
}
 
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
    UITableViewCell*cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
    cell.textLabel.text= [@(indexPath.row)stringValue];
    returncell;
}
@end

0 0