当 backBarButtonItem 有长文本时显示“...”
Posted
技术标签:
【中文标题】当 backBarButtonItem 有长文本时显示“...”【英文标题】:Display "..." when backBarButtonItem have long text 【发布时间】:2016-02-17 03:31:46 【问题描述】:我是 ios 编程的新手。我使用应用程序使用 导航栏,并为 Back 按钮设置文本,如下所示:
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"my text" style:UIBarButtonItemStyleBordered target:nil action:nil];
它工作正常。但是,当我的文本很长时会出现问题,backBarButtonItem 显示默认文本是 Back。
所以,问题是:如何在 backBarButtonItem 中显示长文本,也许显示“...”而不是全文。或者我可以使用自定义视图替换默认导航栏吗?
P/s : 我已经推荐了"back" text displayed in iOS7 UINavigationBar when view title is long 但它对我解决这个问题没有帮助。
【问题讨论】:
"back" text displayed in iOS7 UINavigationBar when view title is long的可能重复 @GuyDaher ,对不起,但它没有帮助,并且没有接受任何答案来解决这个问题 【参考方案1】:试试这个
self.navigationItem.hidesBackButton = YES;
UIButton *btnLeft=[UIButton buttonWithType:UIButtonTypeCustom];
btnLeft.frame=CGRectMake(0, 0, button.widh, button.height);
[btnLeft addTarget:self action:@selector(onClickBackBarItem:) forControlEvents:UIControlEventTouchUpInside];
[btnLeft setTitle:@"YOUR TEXT" forState:UIControlStateNormal];
btnLeft.titleLabel.font = [UIFont fontWithName:@"font_name" size:25.0];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btnLeft];
希望对你有帮助
【讨论】:
感谢您的回答,但这对我没有帮助,它只显示 leftBarButtonItem ,而不是 backBarButtonItem 在这种情况下 你可以试试这个吗?选择 Navigaiton Item -> Show the attributes inspector -> Give the Title you want【参考方案2】:使用sizeToFit
在UIButton
中显示全文
UIButton *btnBack = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 20) ];
[btnBack setTitle:@"Skip" forState:UIControlStateNormal];
btnBack.titleLabel.font = [UIFont fontWithName:@"SFUIText-Medium" size:15];
[btnBack sizeToFit];
[btnBack addTarget:self action:@selector(backActionEvent:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btnSkip];
【讨论】:
可能无法将长文本显示到backBarButtonItem,所以需要设置leftBarButtonItem并执行[self.navigationController popViewControllerAnimated:YES];在 backActionEvent 上(即 UIControlEventTouchUpInside)。 是的,但是如果我设置 leftBarButtonItem,如何显示“ 如果你想显示箭头而不是你需要在 UIButton 对象中设置箭头图像(在文本之前)。 我会尝试,但有一个小问题,我如何限制按钮标题的长度,因为我使用了 rightBarButtonItem 在 UIButton ***.com/questions/11717219/uibutton-image-text-ios 和后退箭头图像中参考此图像+文本(根据您的方便更改图像颜色)cdn4.iconfinder.com/data/icons/ionicons/512/…以上是关于当 backBarButtonItem 有长文本时显示“...”的主要内容,如果未能解决你的问题,请参考以下文章
如何为 backBarButtonItem 设置自定义字体 [重复]