美文网首页iOS点点滴滴
iOS 表格滑动视图放大头视图方法

iOS 表格滑动视图放大头视图方法

作者: 索性流年 | 来源:发表于2017-10-11 11:24 被阅读12次
    只是一个逻辑实现具体的用处还要因人而异

    <UITableViewDelegate,UITableViewDataSource>
    // 添加 tableView
    @property (nonatomic ,strong) UITableView *dragTableview;
    // imageView
    @property (nonatomic ,strong) UIImageView *photoImageview;

    - (void)viewDidLoad {
    [super viewDidLoad];
    // 一步到位,“啊哒!~”
    [self.view addSubview:self.dragTableview];
    // 先创建一个头部视图KScreenWidth全屏的宽,是个懒加载
    UIView * headerview = [[UIView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, 200)];
    // 设置颜色
    // headerview.backgroundColor = [UIColor colorWithRed:245/255.0 green:120/255.0 blue:111/255.0 alpha:0.2];
    // 直接加载到内存中去了
    self.photoImageview.image = [UIImage imageNamed:@"headerImage1.jpg"];
    [headerview addSubview:self.photoImageview];
    // 设置头部视图
    self.dragTableview.tableHeaderView = headerview;
    KScreenHeight全屏的高懒加载
    UIView * backgroundView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)];
    [backgroundView addSubview:self.photoImageview];
    self.dragTableview.backgroundView = backgroundView;
    }

    // 拖动的时候,调用这个方法
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    NSLog(@"%f",scrollView.contentOffset.y);
    // 先取出来 imageView 的 frame
    CGRect tempRect = self.photoImageview.frame;
    if (scrollView.contentOffset.y > 0) {
    // 向上滚动
    tempRect.origin.y = -scrollView.contentOffset.y;
    // 赋值回来
    self.photoImageview.frame = tempRect;
    }
    else {
    // 向下 滚动 图片放大(在原来的高度基础上放大) 肯定是跟 contentOffSet 有关系
    tempRect.origin.y = 0;
    tempRect.size.height = 200 - scrollView.contentOffset.y;
    // 把修改后的 frame 赋值回去
    self.photoImageview.frame = tempRect;
    }
    }

    #pragma mark --返回组数 return sections // 返回组数
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return nil;
    }
    // 返回行数
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 15;
    }

    // 返回 cell
    - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString * cellID = @"cellID";
    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    if (!cell) {
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
    // 设置颜色
    cell.contentView.backgroundColor = [self randomColor];
    }
    cell.textLabel.text = [NSString stringWithFormat:@"第%ld个",indexPath.row];
    return cell;
    }

    // 懒加载 lazyloading
    - (UITableView *)dragTableview {
    // 不会重复加载
    if (!_dragTableview) {
    _dragTableview = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight) style:UITableViewStylePlain];
    _dragTableview.delegate = self;
    _dragTableview.dataSource = self;
    }
    return _dragTableview;
    }

    - (UIImageView *)photoImageview {
    if (!_photoImageview) {
    _photoImageview = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, 200)];
    // 设置填充方式没有他你啥都看不到
    _photoImageview.contentMode = UIViewContentModeScaleAspectFill;
    }
    return _photoImageview;
    }

    //随机颜色
    - (UIColor *)randomColor
    {
    CGFloat r = arc4random() % 256 / 255.0;
    CGFloat g = arc4random() % 256 / 255.0;
    CGFloat b = arc4random() % 256 / 255.0;
    return [UIColor colorWithRed:r green:g blue:b alpha:0.7];
    }

    能力有限,只能写这么多.有什么问题欢迎大家留言指正,我看到一定回复.感谢!!!!!!!

    相关文章

      网友评论

        本文标题:iOS 表格滑动视图放大头视图方法

        本文链接:https://www.haomeiwen.com/subject/jeaiyxtx.html