2

アプリ デリゲートでナビゲーション バーを次のように変更しました。

 NSDictionary *settings = @{

                           UITextAttributeFont                 :  [UIFont fontWithName:@"impact" size:36.0],
                           UITextAttributeTextColor            :  [UIColor whiteColor],
                           UITextAttributeTextShadowColor      :  [UIColor clearColor],
                           UITextAttributeTextShadowOffset     :  [NSValue valueWithUIOffset:UIOffsetZero]};

[[UINavigationBar appearance] setTitleTextAttributes:settings];

But the font cuts down like this for the larger font. :

ここに画像の説明を入力

I tried doing this in viewWillAppear of my VC, :

 UIView *newTitleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
[newTitleView setBackgroundColor:[UIColor blackColor]];
[self.navigationController.navigationBar addSubview:newTitleView];

Then I was going to align title to center. But that just doesn't seems right. Only thing I actually need is to remove margins at top and bottom of the title Label. How do I go about it.

4

3 に答える 3

3

このコードを試して、setTitleTextAttributes を設定しないでください

UILabel *titleView = (UILabel *)self.navigationItem.titleView;
    if (!titleView) {
        titleView = [[UILabel alloc] initWithFrame:CGRectZero];
        titleView.backgroundColor = [UIColor clearColor];
        titleView.font = [UIFont boldSystemFontOfSize:20.0];
        titleView.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];

        titleView.textColor = [UIColor yellowColor]; // Change to desired color

       self.navigationController.navigationItem.titleView = titleView;
        [titleView release];
    }
    titleView.text = title;
    [titleView sizeToFit];
于 2013-05-14T06:32:00.663 に答える
2

私が提案する最も簡単な方法は、ナビゲーションバーではなく、要件に合わせてカスタマイズされたラベルとボタンを備えた UIView を使用することです。mnavigation バーの高さのカスタマイズは、高さが固定され、サブビューにも影響する可能性があるという問題です。そのため、UIView でサブクラス化されたカスタム ヘッダー ビューを使用することをお勧めします。

于 2013-05-14T06:24:21.430 に答える