iOS アプリを設計するのはこれが初めてなので、この動作を正しく理解していることを確認したいと思います。
Photoshop でナビゲーション バーのカスタム バー ボタン アイコンをデザインしました。Photoshop で保存した最終的な画像は 102 x 45 でした。確かに、これらのサイズは iOS 7 のデザイン ガイドラインで推奨されている 44 x 44 よりも大きいことがわかりました。
とにかく、画像をアセット フォルダーに配置し、次のコードを使用してバー ボタン項目をプログラムで設定しました。
UIImage* firstButtonImage = [UIImage imageNamed:@"loginbutton1"];
CGRect frame = CGRectMake(0, 0, 102, 45);
UIButton * someButton = [[UIButton alloc] initWithFrame:frame];
[someButton setBackgroundImage:firstButtonImage forState:UIControlStateNormal];
[someButton addTarget:self action:@selector(didTapLoginButton:)
forControlEvents:UIControlEventTouchUpInside];
self.rightBarButton = [[UIBarButtonItem alloc] initWithCustomView:someButton];
self.navItem.rightBarButtonItem = self.rightBarButton;
ご覧のとおり、フレームの幅と高さを画像の正確なサイズに設定しました。アプリを初めて実行したとき、画像が大きすぎて気に入らなかった。そこで、このステートメントの幅と高さのパラメーターを変更しました。
CGRect frame = CGRectMake(0, 0, 70, 30);
これで、画像は iPhone の画面で完璧に表示されます。これはiPhone 4s上にあります。
だから私の主な質問は、フレームサイズを変更すると実際に何が起こっているのですか? フレームが実際の画像サイズよりも小さいため、画像はフレーム内に収まるように自動的に縮小されますか?