0

私はルート ビュー コントローラーを持っています。その青い背景を画像に変更したり、色を変更したりすることについて知る必要があり、右側に画像を追加したいと考えています。たとえば、下の画像では、ルート ビュー コントローラーのテキストの背景を別の画像に変更するか、色を変更して、ルート ビュー コントローラーのテキストの右側に小さなアイコンを追加する必要があります。どうすればいいですか?各ナビゲーションでナビゲーションバーの背景画像を変更しましたが、まだ実装に問題があります。

AppDelegate.h

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end

Viewcontroller.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@end

これは私のストーリーボードです

4

2 に答える 2

2

これらのコードのいずれかを入れてみてくださいViewWillAppear/ViewDidAppear/didFinishLaunchingWithOptions(appDelegate の場合)。

1)navigationItem.titleView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"urtitlebar.png"]];

また

2)

UIView *myView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
UIImageView *image = [[UIImageView alloc]initWithImage:[UIImage     imageNamed:@"urtitlebar.png"]];
[image setFrame:CGRectMake(0, 0, 44, 44)];
[myView addSubview:image];
[self.navigationController.navigationBar addSubview:myView];

また

3)

UINavigationBar *navBar = self.navigationController.navigationBar;
UIImage *image = [UIImage imageNamed:@"urtitlebar.png"];
[navBar setBackgroundImage:image];

編集:(SDKの古いバージョンを使用している場合は、3.2.5と言います)

のサブビューを作成し、呼び出さUINavigationBarれたメソッドをオーバーライドします。drawRect:(CGRect)rect

@implementation UINavigationBar (BackgroundImage)

- (void)drawRect:(CGRect)rect 
{
    UIImage *navBarImage;


        image = [UIImage imageNamed: @"urNavigationBar.png"];
    }
    [navBarImage drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}

@終わり

于 2013-08-27T08:28:59.500 に答える
0

ナビゲーション バーのカスタム イメージについては、AppDelegate.m の didFinishLaunchingWithOptions でこのコードを試してください。

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"yourImageName.png"] forBarMetrics:UIBarMetricsDefault];

カスタム ボタンをバー ボタンとして追加することもできます。

 // create a custom button in viewDidLoad of your ViewController in which you want to place a custom bar button
 UIButton *customBackBtn =[[UIButton alloc] init];
[customBackBtn setBackgroundImage:[UIImage imageNamed:@"yourImage.png"] forState:UIControlStateNormal];
customBackBtn.frame = CGRectMake(100, 100, 52, 31);

// set this customized button as BarButton
UIBarButtonItem *backBtn =[[UIBarButtonItem alloc] initWithCustomView:customBackBtn];
[customBackBtn addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = backBtn;

それでおしまい。

于 2013-08-27T08:15:14.590 に答える