热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS11自定义导航栏高度

如何解决《iOS11自定义导航栏高度》经验,为你挑选了1个好方法。

首先,感谢您来到这里并帮助解决我的问题.谢谢!!!

在iOS11 beta6中,sizeThatFits:似乎无法在UINavigationBar上运行.我注意到UinavigationBar结构已通过Reveal我的应用程序更改.

我尽力改变自定义导航栏的高度.但似乎总是如此44,它在iOS11之前有效.

- (CGSize)sizeThatFits:(CGSize)size {
    CGSize newSize = CGSizeMake(self.frame.size.width, 64);
    return newSize;
}

在此输入图像描述

奇怪的是,我只是在didMoveToSuperview方法中记录它的框架,它的高度是64,但我真的看到在Reveal和app中它是44.

我不知道这个......请帮帮我..谢谢.

更新:

我发现关于我的自定义导航栏LayoutConstraints登录控制台如下:

"",
""`

我甚至没有在导航栏中使用自动布局.它出什么问题了?

更新8/28:

在此输入图像描述

我在导航栏的- layoutSubviews方法中设置了自定义导航栏的子视图框架.

- (void)layoutSubviews {
    [super layoutSubviews];

    self.frame = CGRectMake(0, 0, CGRectGetWidth(self.frame), 64);

    for (UIView *view in self.subviews) {

        if([NSStringFromClass([view class]) containsString:@"Background"]) {
            view.frame = self.bounds;
        } else if ([NSStringFromClass([view class]) containsString:@"ContentView"]) {
            CGRect frame = view.frame;
            frame.origin.y = 20;
            frame.size.height = self.bounds.size.height - frame.origin.y;
            view.frame = frame;
        }
    }
}

但导航栏将覆盖视图控制器的视图.我该如何解决这个问题?



1> emix..:

由于iOS 11 UINavigationBar完全支持自动布局(这就是你看到它的约束的原因).我已经向Apple打开了雷达,因为我认为为titleView设置高度约束会相应地调整导航栏高度.然而,这就是Apple回复的内容:

完全支持自动布局并不意味着您的视图可以影响导航栏布局的其他方面 - 特别是,导航栏强制执行自己的高度,并且不允许标题视图或其他自定义视图超出高度导航栏.我们将继续处理此问题,并将再次与您联系.

截至今天,雷达仍处于打开状态.


推荐阅读
author-avatar
ayipyipyip
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有