如何计算最佳的 titleView 宽度?

发布于 2024-07-30 07:27:30 字数 540 浏览 6 评论 0原文

我正在使用带有自定义 UIView 子类的导航,该子类成为我的 titleView。 我想确保这是完整的可用宽度。

从逻辑上讲,从我的 UIViewControllerviewWillAppear: 来看,这应该是:(

CGFloat width = self.width - self.navigationItem.leftBarButtonItem.width - someConstant;

我这里没有合适的项目。)

然后,这会适应不同可能的宽度leftBarButtonItem。 问题是 leftBarButtonItemnil,因此 leftBarButtonItem.width 始终为 0(无论如何,在模拟器中)。

backBarButtonItem 也是零。

我应该做什么呢?

I am using navigation with a custom UIView subclass that becomes my titleView. I want to ensure this is the full available width.

Logically from my UIViewController's viewWillAppear:, this should be:

CGFloat width = self.width - self.navigationItem.leftBarButtonItem.width - someConstant;

(I don't have a right item here.)

This would adapt, then, for different possible widths of the leftBarButtonItem. The catch is that leftBarButtonItem is nil, so leftBarButtonItem.width is always 0 (well, in the simulator anyway).

backBarButtonItem is also nil.

What should I be doing instead?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

没有你我更好 2024-08-06 07:27:30

我通过执行以下操作来解决这个问题:

    int vcStackSize = [[self.navigationController viewControllers] count];
    WEViewController* previousController = [[self.navigationController viewControllers] objectAtIndex:vcStackSize - 2];

    NSString* previousTitle = [previousController title];

    UIFont* font = [UIFont boldSystemFontOfSize:12];


    lw = [previousTitle sizeWithFont:font].width + 26;

令人讨厌但它有效

I hacked this by doing the following:

    int vcStackSize = [[self.navigationController viewControllers] count];
    WEViewController* previousController = [[self.navigationController viewControllers] objectAtIndex:vcStackSize - 2];

    NSString* previousTitle = [previousController title];

    UIFont* font = [UIFont boldSystemFontOfSize:12];


    lw = [previousTitle sizeWithFont:font].width + 26;

Nasty but it works

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文