在导航栏中更改Backbuttonitem的框架

时间:2013-10-31 06:17:35

标签: ios uinavigationbar uibarbuttonitem back-button uinavigationitem

我在ipad中创建了一个高度为80的自定义导航栏。在这种情况下,出现了bask按钮框架的问题。

导航栏的高度增加但后退按钮的高度与之前相同,高度os导航栏为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;
     }
}

2 个答案:

答案 0 :(得分:0)

没有!!!您无法更改条形按钮项的frame。虽然UIBarButtonItem与UIButton类似,但继承自UIBarItem的{​​{1}}和UIBarItem而非NSObject。 如果您想要指定尺寸,则可以自定义UIControls,只需使用UIBarButtonItem代替UIButton

答案 1 :(得分:0)

使用UIImageView创建一个BarButtonItem,您可以更改自定义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];