8

ストーリーボードを使用して 2 つの画面を表示するアプリがあります。1 つ目はリスト (スクリーンショットでは "Lista" と呼ばれています) で、2 つ目はマップ ("Térkép") です。各ビューには左右のナビゲーション ボタンがあります。右ボタンを押すと、マップ ビューがナビゲーション コントローラーにプッシュされます。戻るボタンは、マップのviewDidLoadメソッドから手動で非表示にします。

リストビュー 地図表示

問題は、なぜ各画面でバー ボタン アイテムのサイズが異なるのかということです。ボタンのサイズを制御するにはどうすればよいですか?

ボタンの画像は同じサイズです。スキニングは、AppDelegate外観設定を通じて行われます。

// navbar background
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"bg-titlebar.png"]
                                   forBarMetrics:UIBarMetricsDefault];

// navbar button background
[[UIBarButtonItem appearance] setBackgroundImage:[[UIImage imageNamed:@"btn-main.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 4.0, 4.0, 4.0) resizingMode:UIImageResizingModeStretch]
                                        forState:UIControlStateNormal
                                      barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackgroundImage:[[UIImage imageNamed:@"btn-main-active.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 4.0, 4.0, 4.0) resizingMode:UIImageResizingModeStretch]
                                        forState:UIControlStateHighlighted
                                      barMetrics:UIBarMetricsDefault];

// back button background
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[[UIImage imageNamed:@"btn-back.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 12.0, 4.0, 4.0) resizingMode:UIImageResizingModeStretch]
                                                  forState:UIControlStateNormal
                                                barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[[UIImage imageNamed:@"btn-back-active.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 12.0, 4.0, 4.0) resizingMode:UIImageResizingModeStretch]
                                                  forState:UIControlStateHighlighted
                                                barMetrics:UIBarMetricsDefault];
4

1 に答える 1

1

1 つのセグエで作成し、別のセグエでボタンをコピーして貼り付けることで、2 つの同一の UIBarButtonsItem を取得できます (少なくともこれは私の場合は機能していますが、これまでのところ問題の根本原因を特定できていません)。

UIBarButtonItem を直接作成してもうまくいかない場合は、NavigationItem に UIButton をドロップすると、内部に UIButton を持つ UIBarButtonItem が自動的に作成されます (下の画像を参照)。このようにして、UIBarButtonItem に存在しない画像またはその他の属性を構成できます。UIButton (Bar Button に埋め込まれている) の外観に満足したら、それをコピーして別のセグエに貼り付けます。同じサイズを維持する必要があります。

UIBarButtonItem と UIBarButtonItem 内の UIButton の比較

于 2013-06-05T12:06:51.167 に答える