繁体   English   中英

iOS在UINavigationBar标题中设置Button的大小

[英]iOS Set Size of Button in title of UINavigationBar

我试图使用按钮代替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的图像开始)。

谢谢您的帮助!

你为什么不尝试这样的事情:-------

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];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM