iOS设置translucent 引发的坐标问题

   iOS  NavigationBar  + 导航栏 tablevie时候的布局情况,之前迷惑了我很久,怎么也没法理解透明度会影响布局。

接下来看一下以下三种情况的运行结果

1、全部系统默认情况下利用masory 布局 tableView  
  [tableView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.top.right.equalTo(self.view);
        make.bottom.equalTo(self.view.mas_bottom);
    }];

 结果底部发现tableView无法拉到底,如下图

 

解决方案:只要一句代码即可

 [tableView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.top.right.equalTo(self.view);
        make.bottom.equalTo(self.view.mas_bottom);//减去底部tabBar高度
    }];

    self.edgesForExtendedLayout = UIRectEdgeNone;//自动会计算tabBar高度

 

2、全局设置 translucent 导航栏为setTranslucent = NO时

[[UINavigationBar appearance] setTranslucent:NO];

 显示效果同 1的结果。   解决方案同1

(这里就很费解,按照系统文档上解释的话,默认应该是YES才对,可是事实证明系统默认是NO)

 

3、全局设置 translucent 导航栏为setTranslucent = YES 时

 

[[UINavigationBar appearance] setTranslucent:YES];

 结果发现tableView 高度开始从导航栏左上角开始计算,结果如下:

 

解决方案同1,也是设置edgesForExtendedLayout 属性

    self.edgesForExtendedLayout = UIRectEdgeNone;

 

 这里也链接一篇说的比较好的文章:http://www.jianshu.com/p/b11769831fef

 

转载于:https://www.cnblogs.com/kingbo/p/7133931.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值