美文网首页iOS
IOS 仿饿了么首页导航栏 渐变处理

IOS 仿饿了么首页导航栏 渐变处理

作者: JoeWcc | 来源:发表于2018-10-23 14:03 被阅读32次

在项目中 很多时候我们需要 真的某个界面中的导航栏进行隐藏处理,比如饿了么的首页 导航栏默认隐藏 往上滚动 导航栏即显示

如下 效果:

我这个的做法是 首先把导航栏 隐藏掉 然后 自定义 一个导航栏  自定义导航栏默认透明度为零  然后根据 tableVIew 滚动时间 进行透明度改变:

#pragma mark --- 初始化导航栏

- (void)initNavigationView{

    self.nav = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kMainScreenOfWidth, 64)];

    self.nav.backgroundColor = [UIColor whiteColor];

    self.nav.alpha=0;

    [self.viewaddSubview:self.nav];

    self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(10, 20,kMainScreenOfWidth - 80, 44)];

    self.searchBar.placeholder = @"输入商家,商品名称";

    UITextField* searchField = [self.searchBarvalueForKey:@"searchField"];

    if(searchField){

        [searchFieldsetBackgroundColor:[UIColorcolorWithHexRGB:@"EAEAEA"]];

        searchField.layer.cornerRadius=18;//设置圆角具体根据实际情况来设置

        searchField.layer.masksToBounds=YES;

    }

    for(inti =  0;i <_searchBar.subviews.count;i++){

        UIView* backView =_searchBar.subviews[i];

        if([backViewisKindOfClass:NSClassFromString(@"UISearchBarBackground")] ==YES) {

            [backViewremoveFromSuperview];

            [_searchBar setBackgroundColor:[UIColor clearColor]];

            break;

        }else{

            NSArray* arr =_searchBar.subviews[i].subviews;

            for(intj =0;j

                UIView* barView = arr[i];

                if([barViewisKindOfClass:NSClassFromString(@"UISearchBarBackground")] ==YES) {

                    [barViewremoveFromSuperview];

                    [_searchBar setBackgroundColor:[UIColor clearColor]];

                    break;

                }

            }

        }

    }

    [self.nav addSubview:self.searchBar];

    UIButton* signBtn  = [[UIButtonalloc]initWithFrame:CGRectMake(self.nav.gq_width-44-10,self.searchBar.gq_top,44,44)];

    [signBtnsetTitle:@"sign"forState:0];

    [signBtnsetTitleColor:[UIColor blackColor] forState:0];

    [self.navaddSubview:signBtn];

    UIButton* messageBtn = [[UIButtonalloc]initWithFrame:CGRectMake(signBtn.gq_left-10-44, signBtn.gq_top,44,44)];

    [messageBtnsetTitle:@"mess"forState:0];

    [messageBtnsetTitleColor:[UIColor blackColor] forState:0];

    [self.navaddSubview:messageBtn];

    self.searchBar.gq_width = messageBtn.gq_left -10;

}

这里是改变 自定义导航栏 透明度 根据滚动距离  设置透明度:

#pragma mark - scrollview

- (void)scrollViewDidScroll:(UIScrollView*)scrollView {

    NSLog(@"%f", scrollView.contentOffset.y);

    CGFloatoffset = scrollView.contentOffset.y;

    CGFloatalpha = offset *1/136.0;  // (200 - 64) / 136.0f

    if(alpha >=1) {

        alpha =1;

    }

    self.nav.alpha= alpha;

}

顺便给大家 奉上Demo 地址:https://github.com/junyunuo/HideNavigation.git

就上面两个步骤 就已经实现了  导航栏 渐变的效果了  有任何问题 请咨询我:805092132@qq.com

相关文章

网友评论

    本文标题:IOS 仿饿了么首页导航栏 渐变处理

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