导航栏中的标题太长

Posted

技术标签:

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

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

截图

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

有人有想法吗?

【问题讨论】:

Navigation Bar Title Font Size的可能重复 【参考方案1】:

解决方案

    创建UILabel,定义其框架,分配文本

    启用文本的自动调整大小

    label.adjustsFontSizeToFitWidth=YES;
    label.minimumScaleFactor=0.5;
    

    将标签设置为视图控制器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 中做些什么吗?还是创建一个标签?

以上是关于导航栏中的标题太长的主要内容,如果未能解决你的问题,请参考以下文章

如何在 twitter bootstrap3 的导航栏中增加搜索栏的宽度

导航栏中的下拉按钮会扭曲导航栏

导航栏中的 iOS 搜索栏

Bootstrap 导航栏中的中心菜单项

带有 ionic-2-sidemenu 应用程序的顶部导航栏中的导航按钮

导航栏中的 SwiftUI 元素不响应状态