导航条重点注意集锦

作者: Z了个L | 来源:发表于2016-02-24 00:01 被阅读231次
  • 从iOS7开始当scrollView在导航控制器,会自动调用边距64(手动用了一下UIEdgeInsetsMake(64, 0, 0, 0))调整的是scrollView里面的内容的位置,使内容偏移,不是调整scrollView本身的位置
    //从ios7开始当scrollView在导航控制器,会自动调用边距64
    self.automaticallyAdjustsScrollViewInsets = NO;
    //调用 contentInset时会调用scrollViewDidScroll
    self.tableView.contentInset = UIEdgeInsetsMake(244, 0, 0, 0);
  • 导航条和导航条里面的子控件设置透明度是没有效果的
  • 但是设置导航条和导航条里面的子控件的颜色的透明度是有效果的,控件的透明度和控件的颜色的透明度是两种概念,一般在开发中普遍设置控件的颜色的透明度,比如显示在导航条中间的文字,其实放的是一个UILabel,如果你设置UILabel的对象的透明度为0,还是会看见的,没有效果,但是如果你设置UILabel的文字的颜色的透明度为0的话,那么就出现效果了
  • 设置背景图片,必须得要UIBarMetricsDefault
  • 如果指定图片传为nil,会默认给设置一张默认图片,一般开发中经常传人的参数为[[UIImage alloc] init]
  • 导航条上的控件必须设置尺寸
// 导航条和导航条里面的子控件设置透明度是没有效果的.
// 下面两种方式隐藏导航条是不可行的
//  self.navigationController.navigationBar.hidden = YES;
//  self.navigationController.navigationBar.alpha = 0;
//调用 contentInset时会调用scrollViewDidScroll
self.tableView.contentInset = UIEdgeInsetsMake(244, 0, 0, 0);
  • 如何隐藏导航条
// 设置背景图片,必须得要UIBarMetricsDefault
    // 如果指定图片传为nil,会默认给设置一张默认图片,也不行
    // 隐藏导航条分2步
    // 第1步,隐藏背景图片
    [self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
    // 第2步,隐藏剩下那条线,通过隐藏阴影图片
    [self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];

    UILabel *titleT = [[UILabel alloc] init];
    titleT.text = @"个人详情页";
    [titleT sizeToFit];
    // 要隐藏titleT通过设置alpha是没有效果的,得通过设置颜色的透明度
    //    titleT.alpha = 0; 没有效果
    //设置文字的颜色为透明
    [titleT setTextColor:[UIColor colorWithWhite:0 alpha:0]];
    self.navigationItem.titleView = titleT;

    UILabel *titleT = (UILabel *)self.navigationItem.titleView;
    [titleT setTextColor:[UIColor colorWithWhite:0 alpha:alpha]];
#pragma mark - UIScrollViewDelegate方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat offsetY = scrollView.contentOffset.y - oriY; // tableView的偏移量

    // 图片剩下的高度
    CGFloat h = oriH - offsetY;
    if (h <= 64) { // 如果剩下的高度 <= 64
        h = 64;
    }
    // 改变约束值
    self.heightCons.constant = h;

    // 根据透明度传入图片
    // 根据一个颜色生成一张图片
    // 方法总结:类似的问题:找两个最大值,放 / 两端,比如alpha最大值为1,
    // 偏移量最大为136,放两端,剩下的变量与前面的数相乘,ok,
    CGFloat alpha = 1 * offsetY / 136;
    if (alpha >= 1) {
        alpha = 0.99;
    }
    // 根据颜色,生成一张图片
    UIImage *image = [UIImage imageWithColor:[UIColor colorWithWhite:1 alpha:alpha]];
    [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

    UILabel *titleT = (UILabel *)self.navigationItem.titleView;
    [titleT setTextColor:[UIColor colorWithWhite:0 alpha:alpha]];

}

相关文章

  • 导航条重点注意集锦

    从iOS7开始当scrollView在导航控制器,会自动调用边距64(手动用了一下UIEdgeInsetsMake...

  • iOS导航样式之二

    1.设置导航条颜色 注意:在这里设置透明度是没有效果的 2.设置导航条图片 ***注意:1.图片是会被平铺的。 2...

  • 7.1.水平进度条 的实现

    如图 思路 : 1 .这个列子的主要注意点就是先求导航条的长度出来 .公式: 导航条的offsetWidth /b...

  • iOS 去掉导航栏的边界黑线

    1.方法一: 注意:1)如果img = [UIImage alloc]init] ; 导航条属性:transl...

  • CSS样式重点集锦

    div套路 一、 主体:body{margin0 px; padding 0 px} 二、 块级划分 三、 ...

  • 导航条设置

    设置导航条title 设置导航条title样式 设置导航条背景图片 导航条样式 下面记录几种导航条按钮的创建方法:...

  • Tailwind Navbar

    导航栏 PC导航栏仿Airbnb导航条 PC导航条添加图标 PC导航条上图下字 移动端导航条

  • 2018-10-24

    刑法总论重点知识集锦 者也丶 关注 2018-01-12 12:37 · 字数 30923 · 阅读 134 · ...

  • 分页、导航条1、导航条2

    分页 导航条1 导航条2

  • 分页 导航栏 开班信息

    分页 导航条 导航条2 开班信息

网友评论

  • 9b27b67eccb4:小码哥12期同学你好 :relaxed:
    Z了个L:收到,会改进的 :blush:
    9b27b67eccb4:@Z了个L 建议你,要发笔记的话可以好好整合一下,方便别人的同时方便自己
    Z了个L:@hosea_zhou 你好,见笑了 :blush:

本文标题:导航条重点注意集锦

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