我想做一些我认为很简单但结果却相当困难的事情!我想设置导航 Controller 的导航栏和工具栏的样式。我希望他们都拥有:
- 自定义背景图像,我知道我可以使用外观代理,但这不能满足以下几点的要求。
- 导航栏和工具栏应与我为其设置的背景图像具有相同的高度。我尝试过设置框架高度,但没有成功。
- 最后,我想向导航栏和工具栏添加一些按钮(具有特定的高度和宽度,而不是固定/标准的按钮),但我希望工具栏/导航的行为就像 UIView 一样。
如何实现这三点?谢谢!
最佳答案
我想添加一个更好的解决方案(在我看来):为 UINavigationBar 和 UIToolbar 添加一个类别,例如:
UINavigationBar+myNavBar.m
#import "UINavigationBar+myNavBar.h"
@implementation UINavigationBar (myNavBar)
- (CGSize)sizeThatFits:(CGSize)size {
UIImage *header = [UIImage imageNamed:@"Images/backgrounds/header"];
CGSize newSize = CGSizeMake(header.size.width,header.size.height);
return newSize;
}
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"Images/backgrounds/header"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
UINavigationBar+myNavBar.h
#import <UIKit/UIKit.h>
@interface UINavigationBar (myNavBar)
- (CGSize)sizeThatFits:(CGSize)size;
@end
UIToolbar 的解决方案几乎完全相同。
关于objective-c - iOS5:如何设置导航栏和导航工具栏的样式? (背景和尺寸),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11404035/