Изменить рамку Backbuttonitem на панели навигации

Я создал пользовательскую панель навигации в ipad высотой 80. В этом случае возникает проблема с рамкой кнопок bask.

Высота панели навигации увеличилась, но высота кнопки «Назад» такая же, как и раньше, с высотой панели навигации ОС, равной 44. Здесь высота панели навигации увеличивается до 80, поэтому, соответственно, я также хочу изменить рамку кнопки «Назад».

Я знаю, что мы можем добавить пользовательскую кнопку «Назад», но я не хочу создавать 15 изображений для 15 представлений с названием каждого экрана. я хочу изменить рамку кнопок возврата по умолчанию.

вот мой код для настройки панели навигации

#import "UINavigationBar+navbar.h"

@implementation UINavigationBar (navbar)

- (CGSize)sizeThatFits:(CGSize)size {
     if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
         CGSize newSize = CGSizeMake(self.frame.size.width,44);
         return newSize;
     }
     else{
         CGSize newSize = CGSizeMake(self.frame.size.width,80);
         return newSize;
     }
}

person 287986    schedule 31.10.2013    source источник


Ответы (2)


Нет!!! вы не можете изменить frame элементов кнопки панели. Хотя UIBarButtonItem похож на UIButton, но наследуется от UIBarItem и UIBarItem от NSObject, а не от UIControls. Если вы хотите указать размер, вы можете настроить UIBarButtonItem или просто использовать UIButton вместо UIBarButtonItem.

person Suryakant Sharma    schedule 31.10.2013

Создайте BarButtonItem с UIImageView, вы можете изменить рамку пользовательского UIImageView.

   UIImageView* imageView = [[[UIImageView alloc] initWithFrame:navigationController.navigationBar.frame] autorelease];
imageView.contentMode = UIViewContentModeLeft;
imageView.image = [UIImage imageNamed:@"NavBar-iPhone.png"];
[navigationController.navigationBar insertSubview:imageView atIndex:0];
person Suhaiyl    schedule 31.10.2013