美文网首页
iOS navigation设置问题二:Right/Left C

iOS navigation设置问题二:Right/Left C

作者: 圆脸黑猫警长 | 来源:发表于2018-04-20 11:58 被阅读19次
问题:ios11 以后Right/Left CustomView和屏幕边缘的间距进行了调整,11上为16point,10为8point。导致在两种版本上的边距显示不正确。
原因:Right/Left CustomView 的layoutMargins系统进行了设置。

(lldb) po self.navigationController?.navigationBar.subviews[2].layoutMargins
▿ Optional<UIEdgeInsets>
▿ some : UIEdgeInsets
- top : 0.0
- left : 16.0
- bottom : 0.0

处理方案:

自定义navgationbar,重新设置layoutMargins。

在自定义的navigationBar中加入如下代码:

-(void)layoutSubviews
{
    [super layoutSubviews];
    
    for (UIView *view in self.subviews)
    {
        view.layoutMargins = UIEdgeInsetsZero;
    }
}
如何改为自定义的navBar?

方案一:在storyboard中选中navbar设置其class为自定义的即可,用处理方案中的代码即可。
方案二:代码设置需要首先自定义navigationController,重写其- (void)viewDidAppear:(BOOL)animated

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    // 添加修正方法
    for (UIView *view in self.navigationBar.subviews)
    {
        view.layoutMargins = UIEdgeInsetsZero;
    }
}

注意:
navigationBar属性是只读的,而且在sb中加载完后就已经完成了全部的customView,所以在代码中设置自定义navBar则不能正确加载sb中的customView,除非代码去重新设置customView。

参考:
https://forums.developer.apple.com/thread/80075#280515
http://www.matrixprojects.net/p/uibarbuttonitem-ios11/

相关文章

  • iOS navigation设置问题二:Right/Left C

    问题:ios11 以后Right/Left CustomView和屏幕边缘的间距进行了调整,11上为16point...

  • 小笔记

    js设置left、top、right、bottom问题 当元素未设置left、top、right、bottom时(...

  • 清除浮动

    clear: left | right | both; 左边|右边|两边 没有浮动。   对 .first 设置c...

  • 浮动。布局

    布局属性: float:left/right/none clear:left/right/both 设置一个元素左...

  • 2021-04-08

    做二分时,要考虑细节问题,比如While中的终止问题,我们是使用left

  • 圣杯+双飞翼布局

    圣杯布局 1.设置三栏全部浮动2.设置 left{margin-left:-100%},right{margin-...

  • CSS中display:inline和display:inlin

    inline元素 1)可以设置margin-left,padding-left,padding-right,mar...

  • 2021-11-01

    left/right 与leading/trailing iOS 利用UICollectionView横向滚动、余...

  • 算法笔记

    二分法查询标配模板 while(left<=right){ letmid=(left+right)>>>1; //...

  • 多列布局(上)

    定宽+单列自适应布局可以有如下几种方式:1、设置left元素float:left; 并设置right的margin...

网友评论

      本文标题:iOS navigation设置问题二:Right/Left C

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