1

我正在尝试通过为其设置 UILabel 来设置导航项的标题。CGRectMake该代码基本上可以工作,但我的问题是,当视图加载时,UILabel 从它所属的导航栏的顶部和中间定义的位置开始一秒钟左右。有没有办法默认让 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;
4

3 回答 3

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;
于 2013-11-14T05:20:18.950 回答
0

尝试这个

self.titleView = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 150.0f,44.0f)];
[self.titleView setTextAlignment:UITextAlignmentCenter]; 
于 2013-11-14T05:29:06.813 回答
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];
于 2013-11-14T05:32:37.593 回答