UINavigationBar的标题
问题描述:
我想使用一个UILabel在UINavigationBar的更换标题,代码如下:UINavigationBar的标题
UINavigationBar *bar = [self.navigationController navigationBar];
[bar setBackgroundColor:[UIColor blackColor]];
UILabel * nav_title = [[UILabel alloc] initWithFrame:CGRectMake(80, 2, 220, 25)];
nav_title.font = [UIFont fontWithName:@"Arial-BoldMT" size:18];
nav_title.textColor = [UIColor whiteColor];
nav_title.adjustsFontSizeToFitWidth = YES;
nav_title.text = title;
nav_title.backgroundColor = [UIColor clearColor];
[bar addSubview:nav_title];
[nav_title release];
的问题是,如何删除了吧原来的标题?我没有宣布任何self.title = @“称号”,但它总是显示它有:
如果我不self.title =零,那么一切都过去了......如何消除这个神秘的标题来自导航栏,并使用我创建的UILabel。而不是增加您的标签作为一个子视图
答
为什么你不只是做self.title = @ “”?
编辑:试试这个?
UINavigationBar *bar = [self.navigationController navigationBar];
[bar setBackgroundColor:[UIColor blackColor]];
UILabel * nav_title = [[UILabel alloc] initWithFrame:CGRectMake(80, 2, 220, 25)];
nav_title.font = [UIFont fontWithName:@"Arial-BoldMT" size:18];
nav_title.textColor = [UIColor whiteColor];
nav_title.adjustsFontSizeToFitWidth = YES;
nav_title.text = title;
self.title = @"";
nav_title.backgroundColor = [UIColor clearColor];
[bar addSubview:nav_title];
[nav_title release];
答
使用此:
UILabel *label = [[UILabel alloc]init];
[label setBackgroundColor:[UIColor clearColor]];
[label setTextColor:[UIColor whiteColor]];
[label setText:self.title];
label.adjustsFontSizeToFitWidth=YES;
label.lineBreakMode=UILineBreakModeWordWrap;
label.numberOfLines=0;
[label setFont:[UIFont boldSystemFontOfSize:16.0]];
[self.navigationController.navigationBar.topItem setTitleView:label];
[label release];
Hope this will help u..!
一切都没有出现,当我做到这一点...超级怪异 – adit 2011-05-08 18:37:38
那是因为你设置nav_title.text =标题,然后设置标题= @“” – 2011-05-08 19:31:43
所以我所做的就是添加的UILabel作为一个子视图然后做self.title = @“”,然后在viewWillDisapper里面,我从superView中移除标签..有没有比这更有效的方法? – adit 2011-05-08 20:24:12