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 像素的图像,它可以正确显示,但在视网膜显示屏上看起来像素化了。

所以我的主要问题是:将按钮添加到 UINavigationBar 的标题区域的最佳方法是什么?这个按钮的图像的最佳像素大小是多少,它在旧 iPhone 屏幕和新视网膜显示器上看起来都很清晰?(很明显,图像的像素大小有些东西我只是没有掌握 - 我认为从 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 回答