向左或向右移动 UINavigationBar 标题的文本
Posted
技术标签:
【中文标题】向左或向右移动 UINavigationBar 标题的文本【英文标题】:Shifting the text of UINavigationBar title left or right 【发布时间】:2013-08-06 00:51:49 【问题描述】:我希望能够控制标题在 UInavigationBar 中的位置。例如,现在我的标题居中,但对于某些视图,我需要将标题原点向左移动几个 px 左右。这可能吗?
谢谢!
【问题讨论】:
【参考方案1】:您可以向导航项添加自定义 titleView,并在其中放置一个偏离中心的 UILabel 来保存您的标题。另一种更简单的方法可能是在标题末尾附加一个或两个空格字符,如果这样可以提供所需的位移量。
【讨论】:
【参考方案2】:你的代码在这里
- (void) customNavBarTitleWithText:(NSString *) text andFontsize:(float) fontsize
// Custom nav bar back button
UIImage *img = [UIImage imageNamed:@"back_btn.png"];
UIButton *backbtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, img.size.width, img.size.height)];
[backbtn setImage:img forState:UIControlStateNormal];
[backbtn addTarget:self action:@selector(backBtnClicked) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *backBarBtn = [[UIBarButtonItem alloc] initWithCustomView:backbtn];
[self.navigationItem setLeftBarButtonItem:backBarBtn];
//Custom nav bar title
UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:fontsize];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = NSTextAlignmentCenter;
// Use UITextAlignmentCenter for older SDKs.
label.textColor = [UIColor whiteColor]; // change this color
self.navigationItem.titleView = label;
label.text = text;
label.lineBreakMode = NSLineBreakByWordWrapping;
label.numberOfLines = 0;
[label sizeToFit];
// Set nav bar background image
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"top_bar_bg.png"] forBarMetrics:UIBarMetricsDefault];
在那里:
label.textAlignment = NSTextAlignmentCenter;
您可以使用其他模式:NSTextAlignmentLeft、NSTextAlignmentRight、NSTextAlignmentJustified 等。
希望它对你有用!
【讨论】:
以上是关于向左或向右移动 UINavigationBar 标题的文本的主要内容,如果未能解决你的问题,请参考以下文章
在 PyQt5 中将 QsciScintilla 的文本光标向左或向右移动
检测用户何时向左或向右滑动以在 WKWebView 上前后移动