我正在创建一个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]
原文地址:https://www.jb51.cc/iOS/336399.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。