iOS: Расположение кнопок навигационной панели внутри пользовательской навигационной панели

Я создаю приложение с пользовательской панелью навигации. После некоторых исследований я решил сделать это с помощью категории на UINavigationBar. Панель навигации должна быть немного больше, чем обычно, чтобы в ней могла разместиться капля тени. Вот код:

#import "UINavigationBar+CustomWithShadow.h"

@implementation UINavigationBar (CustomWithShadow)

- (void)drawRect:(CGRect)rect {

    // Change the tint color in order to change color of buttons
    UIColor *color = [UIColor colorWithHue:0.0 saturation:0.0 brightness:0.0 alpha:0.0];
    self.tintColor = color;

    // Add a custom background image to the navigation bar 
    UIImage *image = [UIImage imageNamed:@"NavBar.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, 60)];
}

- (void)layoutSubviews {

    self.frame = CGRectMake(0, 20, self.frame.size.width, 60);
}
@end

Единственная проблема заключается в том, что большая панель навигации означает, что кнопки панели навигации оказываются слишком далеко внизу, например:

enter image description here

Кто-нибудь знает, как я могу исправить положение кнопок?

Спасибо за помощь!

Обновление:

Я добавляю кнопки на навигационной панели в init-методе контроллера вида так:

// Create "Add" button for the nav bar
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] 
    initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
    target:self 
    action:@selector(createNewEntry:)];
[[self navigationItem] setRightBarButtonItem:addButton];
[addButton release];
10
задан Erik Frisk 29 May 2011 в 19:17
поделиться