0

iPhoneアプリのナビゲーションバーをカスタマイズしようとしています。ナビゲーションバーのサブクラスを使用し、layout subviewsメソッドを使用して、必要なビューを実際に操作しようとしていました。現在、サブビューのリストを取得していますが、どのサブビューがバーボタンであるか、またはどのサブビューがタイトルビューであるかを検出する方法がわかりません。彼らの説明で私が見ることができるのは、それがUINavigationItemといくつかの追加情報であるということだけです。これについては助けが必要です!

ありがとう!

4

1 に答える 1

2
for (id view in self.subviews) {
    if ([view isKindOfClass:[UIBarButtonItem class]]) {
        // subview is UIBarButtonItem
    }
    // etc...
}

titleViewタイトルのサイズを操作することが目的の場合は、代わりにのを設定する必要があると思いますUINavigationItem。これは、UIViewControllerをプッシュするときに実行する必要がありますUINavigationController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Play around with the frame of the UILabel to 
    // achieve the effect you are going for
    UILabel *label = [[UILabel alloc] initWithFrame:self.navigationItem.titleView.frame];
    label.text = @"Title text";
    label.font = [UIFont fontWithName:@"Oblik-Bold" size:18];
    label.backgroundColor = [UIColor clearColor];
    [label sizeToFit];
    self.navigationItem.titleView = label;
}

すべてでこれを実行したくない場合はUIViewController、機能を実装する基本クラスを作成し、すべてUIViewControllerのを継承することができます。

于 2012-05-24T12:44:10.840 に答える