iOS5から使えるAppearanceを使って、Navigationbarをカスタマイズする

2018/03/23更新 カテゴリー:ビジネスハック,開発奮闘記 タグ: ,
  • このエントリーをはてなブックマークに追加

iOS5から、ナビゲーションバーやタブバーなどを一括設定で設定できるようになりました。このことで、背景の色や文字色、背景画像を使ったりとバリエーションを簡単に増やすことができるようになっています。

SPONSOR

ナビゲーションバーの背景画像を設定

全てのビューに適用させたいので、AppDelegate.mに記述して一括設定します。起動直後に動くdidFinishLaunchingWithOptionsの中に設定を記述します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIImage *image = [UIImage imageNamed:@"back.png"];
    [[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
    [[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:0.80 green:0.71 blue:0.51 alpha:1.0]];
    return YES;
}

setBackgroundImage:imageで背景画像を設定しています。サイズはナビゲーションバーと同じサイズ(320×44と倍のサイズでRetina用を準備)で作ります。

そして、ナビゲーションバーでボタンを出す時に、どの色に合わせるかをsetTintColorで設定しています。そうすると、下のように背景に画像が入り、かつボタンの色もTintColorに合わせた色が反映されます。

ナビゲーションバーのタイトルフォント設定

デフォルトでは、白でシャドウがかかったものになりますが、背景の色が薄ければ文字が見えません。この文字も設定できます。

[[UINavigationBar appearance] setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:
      [UIColor colorWithRed:0.31 green:0.25 blue:0.17 alpha:1.0], //タイトルの文字色
      UITextAttributeTextColor,
      [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.3], //シャドウの色
      UITextAttributeTextShadowColor,
      [NSValue valueWithUIOffset:UIOffsetMake(0, -2)], //シャドウの強さ
      UITextAttributeTextShadowOffset,
      nil,
      UITextAttributeFont,
      nil]];

従来に比べ、かんたんに設定でき、アプリ独自の色も出せるようになったので、積極的に使っていきたい機能です。

iPhoneアプリ開発のTips一覧はこちら

効率のいいiOSプログラミング習得法

独学でプログラミングをはじめてもう16年。
なかなか勉強が進まない人のために記事を書きました。

フリーランスエンジニアの稼ぎ方

  • このエントリーをはてなブックマークに追加
SPONSOR

PROFILE

プロフィール

入江 慎吾
自分が作ったサービスで生きていく。同じゴールを目指すサービス開発集団「入江開発室」を運営(現在約280名) / 個人間スキルシェアサービス「MENTA」は1ヶ月と10日で売上100万円を達成。1日で100社が利用した「JobTag」など多数開発
(詳しいプロフィール)

PRODUCT

イリテクで開発したプロダクト

RELATION

関連する記事

SPONSOR

TAG

タグから記事をさがす