【问题标题】:UIAppearance's setTitleTextAttributes causes UINavigationBar title set in storyboard to appear with ellipsized title in iOS 6 but not iOS 5UIAppearance 的 setTitleTextAttributes 导致故事板中设置的 UINavigationBar 标题在 iOS 6 中显示为椭圆形标题,但在 iOS 5 中没有
【发布时间】:2012-09-16 11:40:28
【问题描述】:

我一直在使用我认为是相当标准的 iOS 5 代码(在 stackoverflow 上是 7x accepted answer),以便让 UINavigationBar 的标题以自定义字体显示。]

但我发现当我为 iOS5 构建的应用程序(以便它可以在 iOS5 和 iOS6 设备上运行)在 iOS6 模拟器上运行时,它省略了我的标题。

以下是在 iOS 5.1 模拟器上运行的相同代码。

为清楚起见,以下是在我尝试在 iOS 6 上运行之前一直有效的相关代码。

#define COURIER_FONT_BOLD @"CourierNewPS-BoldMT"

- (UIFont*)navigationBarTitleFontPortrait
{
    if (!_navigationBarTitleFontPortrait)
        _navigationBarTitleFontPortrait = [UIFont fontWithName:COURIER_FONT_BOLD size:24.0];
    return _navigationBarTitleFontPortrait;
}

// …

    if ([[UINavigationBar class] respondsToSelector:@selector(appearance)])
    {
        NSDictionary* attrs = [NSDictionary dictionaryWithObjectsAndKeys:
                                            [UIColor lightGrayColor],
                                                                UITextAttributeTextShadowColor,
                                            [NSValue valueWithUIOffset:UIOffsetMake(1, 0)],
                                                                UITextAttributeTextShadowOffset,
                                            navigationBarTitleFontPortrait,
                                                                UITextAttributeFont,
                                            nil];
        [[UINavigationBar appearance] setTitleTextAttributes:attrs];
    }

【问题讨论】:

    标签: ios5 uinavigationbar ios6 uifont uiappearance


    【解决方案1】:

    我发现了上述问题的两种解决方案:

    1. 在 .storyboard(在我的例子中,我输入了“...”,然后在viewDidLoad, 拨打self.navigationItem.title = @"the GRID";

    2. 在viewDidLoad中,执行[self.navigationController.navigationBar setNeedsLayout]

    我更喜欢后者,因为它感觉不像是杂物。无论如何,我猜第一个解决方案会迫使第二个解决方案发生。

    不知道为什么这种行为在 iOS 5 和 iOS 6 之间有所不同,但这让它可以在两者中工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 2012-06-02
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      相关资源
      最近更新 更多