2

xib にナビゲーション バーとナビゲーション アイテムを追加しました。ナビゲーション バーの左側に画像を追加する必要がありますが、追加されません。これは私が取り組んでいるコードです:

- (void)viewDidLoad
{
UIImage *image = [UIImage imageNamed: @"i_launcher.png"];
    UIImageView *imageView = [[UIImageView alloc] initWithImage: image];
    self.navigationItem.titleView = imageView;
    [imageView release];
}

画像が追加されない理由がわかりません。どうすれば追加できますか?

4

9 に答える 9

8

これは、受け入れられた回答を持つ古い質問のようです。ただし、追加したかったのは次のとおりです。

少なくとも Xcode 5 では、ストーリーボードを使用している場合、空のビューをタイトル領域にドラッグし、空のビュー内に ImageView を配置することで、ナビゲーション バーのタイトルとして画像を追加できます。

次のスクリーンショットは、それがどのように見えるかのアイデアを提供するはずです: navigationBar.titleView 内の空のビュー内の imageView を描いたストーリーボードのスクリーンショット

于 2014-09-24T15:52:27.233 に答える
3
- (void)viewDidLoad

    {


       UIImage *image = [UIImage imageNamed:@"Your Image"];
       UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
       imageView.frame = CGRectMake(5, 10, 72, 19);
       [self.navViewController.navigationBar addSubview:imageView];
   }
于 2012-11-28T06:05:56.747 に答える
1

ナビゲーション バーの特定の位置に画像を設定する場合は、ビューを作成してビュー内に画像を追加し、画像フレームを調整してから、このビューを navBar に追加します。

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

xib から NavBar を追加する場合は、xib で接続するようIBOutletにします。UINavigationBar

[myNavigationBar addSubview:view];
于 2012-11-28T06:54:56.830 に答える
0

これが確実に役立つことを願っています。うまくいかない場合は、イメージ名が正しいことを確認してください。

UIImage *yourimage = [UIImage imageNamed: @"i_launcher.png"];

UIButton *buttonBarButton = [ UIButton buttonWithType:UIButtonTypeCustom];
buttonBarButton.frame = CGRectMake(0, 0,yourimage.size.width,yourimage.size.height);
[buttonBarButton setBackgroundImage:yourimage forState:UIControlStateNormal];
[buttonBarButton addTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *buttonBarButtonItem = [[[UIBarButtonItem alloc]initWithCustomView:buttonBarButton] autorelease];
self.navigationItem.leftBarButtonItem = buttonBarButtonItem;

アクションを追加したい場合は、次のことを意味します。

[buttonBarButton addTarget:self action:@selector(your function) forControlEvents:UIControlEventTouchUpInside];
于 2012-11-28T06:36:20.267 に答える
0

imageView.frameを設定してみてください。適切に初期化された画像をクロスチェックしてください。

UIImage *image = [UIImage imageNamed: @"i_launcher.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage: image];
imageView.frame.origin.x = 30.0; // You will have to find suitable values for the origin
imageView.frame.origin.y = 5.0;
self.navigationItem.titleView = imageView;
[imageView release];
于 2012-11-28T05:43:27.880 に答える
0

あなたのコードは問題ないようです。しかし、xib にナビゲーション バーとアイテムを追加する必要がある理由がわかりません。UIViewController から派生した独自のビュー コントローラーを作成すると、ナビゲーション バーが含まれます。追加したナビゲーション バーと項目を xib から削除して、何が起こるかを確認してみてください。

ビューベース アプリケーションの最初のビューにナビゲーション バーを表示する場合は、アプリケーション クラス コードを次のように変更する必要があります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.viewController = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];

    // REMOVE THIS LINE !!!!!!!!!!!!!
    //self.window.rootViewController = self.viewController;

    // ADD BELOW TWO LINES !!!!!!!!!!!!!!!!!!!!!!!
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self.viewController];
    self.window.rootViewController = nav;

    [self.window makeKeyAndVisible];
    return YES;
}

次のようなテストを行いました。

  1. 新しい単一ビュー ベースのプロジェクトを作成します。
  2. 変更せずに実行します。空の画面が表示されます。
  3. application.m ファイルで、上記のように didFinishLaunchingWithOptions() を変更します。
  4. viewcontroller.m に、次の行を追加します。

    -(void)viewDidLoad { [super viewDidLoad]; UIImageView *view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)]; view.image = [UIImage imageNamed:@"info.png"]; self.navigationItem.titleView = ビュー; }

  5. もう一度実行します。画像がタイトルのナビゲーション バーが表示されます。

于 2012-11-28T05:46:31.907 に答える