ios – 在UINavigationBar中更改UIBarButtonItem的宽度

ios – 在UINavigationBar中更改UIBarButtonItem的宽度,第1张

概述我正在创建一个UIBarButtonItem并将其添加到我的导航栏,如下所示: (void)viewDidLoad { ... // Add the refresh button to the navigation bar UIButton *refreshButton = [UIButton buttonWithType:UIButtonTypeCustom]; [ 我正在创建一个UIbarbuttonItem并将其添加到我的导航栏,如下所示:
(voID)vIEwDIDLoad {    ...   // Add the refresh button to the navigation bar   UIbutton *refreshbutton = [UIbutton buttonWithType:UIbuttonTypeCustom];   [refreshbutton setFrame:CGRectMake(0,30,30)];   [refreshbutton setimage:[UIImage imagenamed:@"G_refresh_icon.png"] forState:UIControlStatenormal];   [refreshbutton addTarget:self action:@selector(refreshData) forControlEvents:UIControlEventtouchUpInsIDe];   UIbarbuttonItem *refreshbarbutton = [[[UIbarbuttonItem alloc] initWithCustomVIEw:refreshbutton] autorelease];   self.navigationItem.leftbarbuttonItem = refreshbarbutton;}

当我运行时它看起来正确,但是我可以通过点击导航栏从x = 0到大约100的任意位置来选择条形按钮项.如何调整可选区域的宽度为30像素?

解决方法 达伦

您可能会考虑的一种方法是通过调用initWithCustomVIEw来创建一个UIbarbuttonItem.这不是理想的,因为你没有得到“选择”的状态,你必须复合您的边框背景(如果想要的样子)与您的按钮图像,但是,您可以更直接指定一个框架为您的工具栏项.如果您使用标题而不是图片使用文字,则可能仍需要在背景图片中添加作为子视图.无论如何,我现在有同样的问题,这段代码对我有用:

UIImageVIEw *imageVIEw = [[UIImageVIEw alloc] initWithImage:[UIImage imagenamed:@"button-image.png"]];imageVIEw.frame = CGRectMake(0,43,30);UIbarbuttonItem *barbuttonItem = [[UIbarbuttonItem alloc] initWithCustomVIEw:imageVIEw];self.navigationItem.leftbarbuttonItem = barbuttonItem;

现在这是我知道限制添加到UINavigationController的navigationItem中的UIbarbuttonItem的自动调整大小的唯一方法.

[EDITED]

或try Maggie’s solution,which is more thorough than mine.

总结

以上是内存溢出为你收集整理的ios – 在UINavigationBar中更改UIBarButtonItem的宽度全部内容,希望文章能够帮你解决ios – 在UINavigationBar中更改UIBarButtonItem的宽度所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1111388.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存