美文网首页
下拉放大和渐变导航栏控制器

下拉放大和渐变导航栏控制器

作者: jayhe | 来源:发表于2017-05-12 17:52 被阅读0次

    LCStretchableHeaderViewController

    功能介绍

    • 提供一个UIViewController的子类LCStretchableHeaderViewController,支持设置stretchableHeader,实现下拉的时候,header放大,类似于qq空间的效果
    • 支持向上滑动,导航栏的颜色渐变效果
    • 提供代理,当navigationBar在Transparent和Normal状态切换的时候,设置navigationBar的子视图的样式

    如何使用

    • pod "LCStretchableHeaderViewController"
    • 使用代码示例:
    //配置
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        [self setupUI];
    }
    - (void)setupUI
    {
        self.view.backgroundColor = [UIColor whiteColor];
        self.title = @"DEMO";
        self.navBarNormalColor = [UIColor greenColor];
        self.ignoredTopOffset = 200;//这个高度一般设置的跟headerView的一样
        
        //add subview
        self.headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 200)];
        self.headerView.backgroundColor = [UIColor redColor];
        //set frame
        UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height) style:UITableViewStyleGrouped];
        tableView.rowHeight = 88;
        tableView.delegate = self;
        tableView.dataSource = self;
        self.containerView = tableView;
    }
    
    //代理:根据状态的不同修改item的颜色
    - (void)lc_navgigationBarStateChanged:(LCNavigationBarState)barState
    {
        NSLog(@"state = %ld", barState);
        if (barState == LCNavigationBarStateTransparent)
        {
            self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Transparent" style:UIBarButtonItemStylePlain target:nil action:nil];
            [self.navigationItem.rightBarButtonItem setTintColor:[UIColor whiteColor]];
            [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
        }else
        {
            self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Normal" style:UIBarButtonItemStylePlain target:nil action:nil];
            [self.navigationItem.rightBarButtonItem setTintColor:[UIColor blackColor]];
            [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor blackColor]}];
        }
    }
    

    效果截图

    demo.gif

    git:https://github.com/jayhe/LCStretchableHeaderViewController

    相关文章

      网友评论

          本文标题:下拉放大和渐变导航栏控制器

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