一群程序猿的秘密基地iOS积累用之

scrollView顶部图片下拉放大,NavBar颜色渐变

2016-05-09  本文已影响348人  7dfa9c18c1d1
效果图.gif
//
//  ViewController.m
//  Test
//
//  Created by liyang on 16/5/9.
//  Copyright © 2016年 liyang. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()<UIScrollViewDelegate>
@property (nonatomic, strong) UIScrollView *scrollView;
/** 图片 */
@property (nonatomic, strong) UIImageView *img;
/** backView2 */
@property (nonatomic, strong) UIView *navBackView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor whiteColor];
    
    self.automaticallyAdjustsScrollViewInsets = NO;
    
    self.navigationItem.leftBarButtonItem = ({
        UIBarButtonItem *left = [[UIBarButtonItem alloc] initWithTitle:@"left" style:UIBarButtonItemStylePlain target:self action:@selector(left:)];
        left;
    });
    
    [self.view addSubview:self.scrollView];
    
    // 设置导航条的背景色透明
    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithStretchableImageName:@"navBar_background"] forBarMetrics:UIBarMetricsDefault];
    [self.navigationController.navigationBar setShadowImage:[UIImage imageWithStretchableImageName:@"navBar_background"]];
    [self navBackView];
    
}
- (UIView *)navBackView
{
    if (!_navBackView) {
        UIView *view = [[UIView alloc] init];
        view.frame = CGRectMake(0, 0, kScreenWidth, 64);
        view.alpha = 0;
        view.backgroundColor = [UIColor orangeColor];
        [self.view addSubview:view];
        self.navBackView = view;
    }
    return _navBackView;
}
- (void)left:(UIBarButtonItem *)sender
{
    
}
- (UIScrollView *)scrollView
{
    if (!_scrollView) {
        UIScrollView *scrollerView = [[UIScrollView alloc] initWithFrame:kScreenBounds];
        scrollerView.contentSize = CGSizeMake(0, kScreenHeight*1.5);
        scrollerView.delegate = self;
        scrollerView.backgroundColor = [UIColor whiteColor];
        self.scrollView = scrollerView;
        
        UIImageView *imgV = [[UIImageView alloc] init];
        imgV.frame = CGRectMake(0, 0, self.scrollView.width, 200);
        imgV.image = [UIImage imageNamed:@"1"];
        [self.scrollView addSubview:imgV];
        self.img = imgV;
    }
    return _scrollView;
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat offset_y = scrollView.contentOffset.y;
    if (offset_y < 0) {
        self.navBackView.alpha = 0;
        self.img.alpha = 1;
        // 下拉的高度变化
        CGFloat h = -offset_y - 0;
        // 缩放系数
        CGFloat scale = h / 100 + 1;
        // 下拉放大
        self.img.transform = CGAffineTransformMakeScale(scale, scale);
    }else if (offset_y == 0){
        self.navBackView.alpha = 0;
        self.img.alpha = 1;
        self.img.transform = CGAffineTransformIdentity;
    }else if (offset_y > 0){
        // 变化系数
        CGFloat scale = offset_y/(200-64);
        self.navBackView.alpha = scale;
        self.img.alpha = (1-scale);
    }
}
@end
上一篇下一篇

猜你喜欢

热点阅读