gpt4 book ai didi

iOS11自定义导航栏高度

转载 作者:技术小花猫 更新时间:2023-10-29 10:26:14 25 4
gpt4 key购买 nike

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

在 iOS11 beta6 中,sizeThatFits: 似乎在 UINavigationBar 上不起作用。我注意到 UINavigationBar 结构已通过显示我的应用程序更改。

我已尽力更改自定义导航栏的高度。但是好像一直都是44,在iOS11之前就可以了。

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

enter image description here

奇怪的是,我只是在 didMoveToSuperview 方法中记录了它的帧,它的高度是 64,但我在 Reveal 和 app 中确实看到它是 44。

我对此一无所知...请帮助我...谢谢。

更新:

我发现关于我的自定义导航栏 LayoutConstraints 登录控制台是这样的:

"<NSAutoresizingMaskLayoutConstraint:0x604000495ae0 FDCustomNavigationBar:0x7fe2f01399d0.(null) == 42>",
"<NSAutoresizingMaskLayoutConstraint:0x604000495b30 FDCustomNavigationBar:0x7fe2f01399d0.height == 44>"`

bug 我什至没有在我的导航栏中使用自动布局。有什么问题吗?

8 月 28 日更新:

enter image description here

我已经在导航栏的 - 设置了自定义导航栏的 subview 框架
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;
}
}
}

但是导航栏会覆盖 View Controller 的 View 。我该如何解决?

最佳答案

由于 iOS 11 UINavigationBar 完全支持自动布局(这就是您看到其限制的原因)。我已经打开了 Apple 雷达,因为我认为为 titleView 设置高度限制会相应地调整导航栏高度。然而,苹果是这样回答的:

Full support for auto layout does not imply that your view can influence other aspects of the layout of the navigation bar – in particular, the navigation bar enforces its own height and does not allow the title view or other custom views to exceed the height of the navigation bar. We are continuing to work on this issue, and will follow up with you again.

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

关于iOS11自定义导航栏高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45856474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com