0

我一直在尝试在 iPhone 应用程序中自定义导航栏。我试图使用导航栏的子类并使用布局子视图方法来实际操作我需要的视图。现在,我正在获取子视图列表,但我不知道如何检测哪个子视图是条形按钮或哪个是标题视图。我在他们的描述中只能看到它是一个 UINavigationItem 和一些附加信息。在这方面需要一些帮助!

谢谢!

4

1 回答 1

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

如果目标是操纵标题的大小,我认为您应该改为设置titleViewof 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您可以创建一个实现该功能的基类,并且您的所有UIViewControllers 都继承自。

于 2012-05-24T12:44:10.840 回答