我正在尝试使用一个按钮代替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 20px图像并且显示正确,但在视网膜显示屏上看起来像素化。
所以我的主要问题是:在UINavigationBar的标题区域添加按钮的最佳方法是什么?这个按钮的图像的最佳像素大小是多少,在旧的iphone屏幕和新的视网膜显示器上看起来都很清晰? (显然有一些关于图像像素大小的东西,我只是没有抓住 - 我认为从40x40px或60x60px图像开始是最好的。)
感谢您的帮助!
答案 0 :(得分: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];