objective-c - iOS5:如何设置导航栏和导航工具栏的样式? (背景和尺寸)

标签 objective-c ios ios5 uinavigationcontroller uinavigationbar

我想做一些我认为很简单但结果却相当困难的事情!我想设置导航 Controller 的导航栏和工具栏的样式。我希望他们都拥有:

  1. 自定义背景图像,我知道我可以使用外观代理,但这不能满足以下几点的要求。
  2. 导航栏和工具栏应与我为其设置的背景图像具有相同的高度。我尝试过设置框架高度,但没有成功。
  3. 最后,我想向导航栏和工具栏添加一些按钮(具有特定的高度和宽度,而不是固定/标准的按钮),但我希望工具栏/导航的行为就像 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/

相关文章:

ios nsarray/nsmutablearray 对自定义对象进行分组/求和

objective-c - Obj-C : application:openFiles: (multiple files dropped) not receiving all files. 错误?

ios - 有条件的 prepareForSegue 与 swift

iphone - 如何正确更新Three20?

Objective-C ARC 与 MRR : why the switch?

objective-c - 使用 AVFoundation 切换相机时视频卡住

ios - 我写了一个 iOS 应用程序,它完全不使用任何变量,总是使用属性。那是对的?

ios - SKView 集成到 UIViewController 中,UITextFields 滞后

ios - 如何在 ios sdk 中从 facebook 注销

ios - 可调整大小的 UIImage,其中外部拉伸(stretch)和内部保持不变