我在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;
}
}
答案 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];