【问题标题】:Dynamically adjust font size in UINavigationBar在 UINavigationBar 中动态调整字体大小
【发布时间】:2013-10-03 02:07:52
【问题描述】:

我想做的是这样的:

我有一个导航栏,它使用覆盖整个栏的图像,看起来像这样:

现在我想把标题放在栏的黑色部分,这样它就不会影响图标。 这个标题可能很短也可能很长。所以我尝试了这个:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 44)];
label.backgroundColor = [UIColor blackColor];
label.numberOfLines = 2;
label.minimumFontSize = 8.;
label.adjustsFontSizeToFitWidth = YES;
label.font = [UIFont boldSystemFontOfSize:16.0];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = UITextAlignmentCenter;
label.textColor =[UIColor whiteColor];
label.text = name;
self.navigationItem.titleView = label;

但这不起作用,因为标签的宽度会根据需要在标签上增加并超过 200 像素。

那我该怎么办? 感谢您的帮助。

PS:相机图标不是按钮。

【问题讨论】:

    标签: ios objective-c fonts resize uinavigationbar


    【解决方案1】:

    您的代码在 iOS 7.0 中运行良好

    由于您使用的是 UITextAlignmentCenter(而不是 NSTextAlignmentCenter),并且还使用了 minimumFontSize,因此我假设您在早期版本的 iOS 上运行,因为这些在 iOS 6.0 中都已弃用

    主要问题是如果 numberOfLines 设置为 1,adjustsFontSizeToFitWidth 仅适用于 iOS6 及更早版本

    正如您在苹果开发者文档中看到的那样

    https://developer.apple.com/library/ios/documentation/uikit/reference/UILabel_Class/Reference/UILabel.html#//apple_ref/occ/instp/UILabel/adjustsFontSizeToFitWidth

    如果你需要两行并且还想调整字体大小......你可以只使用你的名字字符串的长度属性,它会告诉你字符串中有多少个字符,然后你可以设置根据字符串长度的字体大小

    【讨论】:

      猜你喜欢
      • 2011-04-02
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多