0

UINavigationBar のタイトルの代わりにボタンを使用しようとしています。ボタンをカスタム イメージで表示することに成功しましたが、サイズを変更する方法を理解するのに苦労しています。次のようないくつかのことを試しました。

UIButton *titleButton = [[UIButton alloc]init];
UIImage *settingsButtonImage = [UIImage imageNamed:@"settingsButton2X.png"];
[titleButton addTarget:self action:@selector(settingsButtonPress:) forControlEvents:UIControlEventTouchDown];
[titleButton setBackgroundImage:settingsButtonImage forState:UIControlStateNormal];
[titleButton setFrame:CGRectMake(0, 0, 20, 20)];
self.navigationItem.titleView = titleButton;

これはうまく機能しますが、ナビゲーション バーの結果の画像が y 方向にのみサイズ変更され、滑らかな外観になります (残念ながら、私は評判がないため、それを示す画像を投稿できません。できるかもしれません。ここで確認するには: http://i.stack.imgur.com/fNh7O.png )

20 x 20 ピクセルの画像を使用でき、正しく表示されますが、Retina ディスプレイではピクセル化されて見えます。

だから私の主な質問は: UINavigationBar のタイトル領域にボタンを追加する最良の方法は何ですか? 古い iPhone 画面と新しい Retina ディスプレイの両方で鮮明に見える、このボタンの画像の最適なピクセル サイズは? (明らかに、私が把握していない画像のピクセルサイズについて何かがあります-40x40pxまたは60x60pxの画像から始めるのが最善だと思いました)。

助けてくれてありがとう!

4

1 に答える 1

3

このようなことを試してみませんか:-------

UIButton *titleButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 20, 20)];

UIImage *settingsButtonImage = [UIImage imageNamed:@"settingsButton2X.png"];
[titleButton addTarget:self action:@selector(settingsButtonPress:) forControlEvents:UIControlEventTouchDown];
[titleButton setBackgroundImage:settingsButtonImage forState:UIControlStateNormal];
titleButton.center=self.navigationController.navigationBar.center;
titleButton.center=CGPointMake(titleButton.center.x, self.navigationController.navigationBar.frame.size.height/2);
[self.navigationController.navigationBar addSubview:titleButton];
于 2013-06-13T04:37:28.123 に答える