【问题标题】:Title in Navigation bar too long导航栏中的标题太长
【发布时间】:2016-06-17 04:24:57
【问题描述】:

我制作了一个 iOS 应用。在 iPhone 6s 上,导航栏中的标题是“这是我的应用程序!”。在 iPhone 5s 上,导航栏中的标题是“This is my a...”。它太长了。是否有可能为 iPhone 5s 自动缩小文本或设置自己的字体大小或其他标题?

截图

我几乎一整天都在谷歌上搜索,但找不到任何有用的提示。

有人有想法吗?

【问题讨论】:

标签: ios iphone navigation


【解决方案1】:

解决方案

  1. 创建UILabel,定义其框架,分配文本
  2. 启用文本的自动调整大小

    label.adjustsFontSizeToFitWidth=YES;
    label.minimumScaleFactor=0.5;
    
  3. 将标签设置为视图控制器navigationItem的titleView

    self.navigationItem.titleView = label;
    

【讨论】:

  • 代码放在哪里?在 ViewDidLoad 下的 ViewController.m 中?
  • 是的,没错,你的视图控制器的viewDidLoad
  • “定义其框架”到底是什么意思?
  • 我收到错误消息“使用未声明的标识符‘标签’
  • 太棒了!通过定义框架,我的意思是用框架初始化标签。看起来你已经在这样做了,你正在使用 initWithFrame 来提供帧值。
【解决方案2】:

试试这个

UILabel *lbl=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, YOUR_WIDH, YOUR_HEIGHT)];
lbl.textAlignment=NSTextAlignmentCenter;
lbl.backgroundColor=[UIColor clearColor];
lbl.font=[UIFont fontWithName:@"FONT_NAME" size:FONT_SIZE];
lbl.textColor=[UIColor whiteColor];
lbl.text=@"YOUR TITLE";
self.navigationItem.titleView=lbl;

【讨论】:

  • 感谢您的回答。放在哪里?在 [super viewDidLoad] 下的 ViewController.m 中;?
  • 谢谢,我做到了,但仍然没有成功。我在[super viewDidLoad]下添加了代码;我替换了 YOUR_WIDH=200, YOUR_HEIGHT=30, FONT_NAME=Arial, size:FONT_SIZE=25。我没有收到错误,但导航栏中也没有标题。我必须添加标签或类似的东西吗?
  • 当然。主要问题还是设置为新的“答案”?
  • 好的,我刚做了。你能帮帮我吗?
  • 你能帮帮我吗?我必须在 ViewController.h 中做些什么吗?还是创建一个标签?
猜你喜欢
  • 2018-11-10
  • 2011-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多