我正在尝试通过设置UILabel来设置导航项的标题。代码本质上是有效的,但我的问题是当View加载时,UILabel会在CGRectMake
定义的位置开始,而不是在导航栏所在的位置的顶部和中间。有没有办法让UILabel开始在正确的位置?
显而易见的解决方法是将初始位置设置在屏幕之外,使其隐藏,然后在一瞬间将UILabel移动到正确的位置。但这似乎是完成我需要的“错误”方式。下面是代码。
@property (nonatomic, strong) UILabel *titleView;
...
self.titleView = [[UILabel alloc] initWithFrame:CGRectMake(20.0f, 0.0f, 150.0f, 128.0f)];
self.titleView.font = [UIFont systemFontOfSize:10.0f];
self.titleView.text = @"My title";
self.navigationItem.titleView = self.titleView;
答案 0 :(得分:0)
UILabel
中文本的默认对齐方式设置为左侧,因此您需要以编程方式将其设为中心。
试试这个,
self.titleView = [[UILabel alloc] initWithFrame:CGRectMake(20.0f, 0.0f, 150.0f, 128.0f)];
self.titleView.font = [UIFont systemFontOfSize:10.0f];
self.titleView.text = @"My title";
[self.titleView setTextAlignment:NSTextAlignmentCenter]; //ADD THIS
self.navigationItem.titleView = self.titleView;
答案 1 :(得分:0)
试试这个
self.titleView = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 150.0f,44.0f)];
[self.titleView setTextAlignment:UITextAlignmentCenter];
答案 2 :(得分:0)
我已经像这样解决了我的问题
UILabel * label = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,45,45)] autorelease];
label.textColor = [UIColor whiteColor];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:20];
self.navigationItem.titleView = label;
label.text = @"Customer"; //CUSTOM TITLE
[label sizeToFit];