web-dev-qa-db-ja.com

IPhoneアプリのUINavigationBarに画像を追加する方法

私のアプリでは、ナビゲーションバーに画像(ロゴ)を追加します。私はXCode 4.2とiOS 5に取り組んでいます。

UINavigationBarUIToolBarがiOS 5で変更されたことを知っています。したがって、iOS 4.2 UINavigationBarコードはiOS 5では動作しません。

4.2と5の両方のバージョンでUINavigationBarの表示画像をサポートしたい。

下のスクリーンショットのようにUINavigationBarで画像を表示したいです。

Navigation bar image

この点で助けてください。サンプルコードがある場合は、私にとって非常に役立つことを意味します。

ありがとう!!!

41
user2136

これを行う1つの方法は、UINavigationItem.titleViewおよびUINavigationItem.rightBarButtonItem。このような :

viewController.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage.png"]];
UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage2.jpg"]]];    
viewController.navigationItem.rightBarButtonItem = item;    

ここでは、カスタムビューとしてUIImageViewを使用していますが、カスタムイメージでUIButtonにすることもできます。

78
barley

ViewControllerを使用しない別の方法

// Create your image
UIImage *image = [UIImage imageNamed: @"logo.png"];
UIImageView *imageview = [[UIImageView alloc] initWithImage: image];

// set the image view to the title view
self.navigationItem.titleView = imageview;
33
mikemike396

Swiftバージョン:View Controllerで関数を使用するためのプロトコル拡張機能を作成できます

protocol Customizable {
    var navigationItem: UINavigationItem { get }
}

extension Customizable {
    func setNavBarLogo() {

        let logo = UIImage(named: "logo")
        let logoImageView = UIImageView(image: logo)

        self.navigationItem.titleView = logoImageView
    }
}
4
rockdaswift