gpt4 book ai didi

ios - 自定义 UINavigationBar sizeThatFits 实现不返回真实的 frame.size.width

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:59:33 27 4
gpt4 key购买 nike

我正在尝试使用定义的高度子类化 UINavigationBar 并尝试实现 sizeThatFits 方法:

@implementation NavigationBar

- (CGSize)sizeThatFits:(CGSize)size {
NSLog(@"frame: %@", NSStringFromCGRect(self.frame));
return CGSizeMake(self.frame.size.width, 62);
}

@end

但显然 self.frame.size.width 总是返回一个奇怪的值,它不是我想要的 1024,它导致了下面显示的行为:

NSLog 输出:

> frame: {{224, 20}, {576, 62}}

在手动定义 CGSizeMake(1024, 62) 时,这将导致以下情况:

隐藏按钮和 NSLog 输出将是:

> frame: {{-128, 20}, {1280, 62}}

关于如何正确实现此方法以使导航栏扩展到所有窗口的任何想法?

最佳答案

如果你想避免使用“魔数(Magic Number)”,可以尝试使用 UINavigationBar superview 的大小。

- (CGSize)sizeThatFits:(CGSize)size
{
return CGSizeMake(self.superview.bounds.size.width, 62.0f);
}

我在 iOS 6 上运行良好。无需覆盖 layoutSubviews

关于ios - 自定义 UINavigationBar sizeThatFits 实现不返回真实的 frame.size.width,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13706469/

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