如何在导入栏中插入时更改UIBarButtonItem的框架?

时间:2012-08-21 06:58:38

标签: iphone ios ipad

我的应用中有导航控制器。我在视图的导航栏中添加UIBarButtonItem。将UIBarButtonItem添加到导航栏时,UIBarButtonItem的默认宽度和高度为44 * 30。我想要一个大小为30 * 30的UIBarButtonItem在导航栏中。我怎样才能做到这一点? 我已经尝试更改UIBarbutton的width属性,但是在探索时我才知道只有当我们在ToolBar中插入UIBarButtons来更改默认宽度时才有可能,当我们插入导航栏时它是不可能的。有什么方法可以实现这个目标吗?

我的基本需求是我需要两个方形(30 * 30)条形按钮位于导航栏的左侧,一个位于导航栏的右侧。是的我可以在那里插入简单的按钮并设置框架而不是条形按钮。但我只是想知道是否可以改变条形按钮的宽度。如果是,那是什么方式?

2 个答案:

答案 0 :(得分:0)

根据需要创建一个 UIButton 并将其指定为左右按钮。您可以根据需要更改框架。与右键相同。

UIButton *mybutton = [UIButton buttonWithType: UIButtonTypeCustom];
[mybutton setImage:[UIImage imageNamed:@"anyimage.png"]];
  [mybutton setFrame:CGRectMake(0,0,30,30)];
[mybutton addTarget:self action:@selector(onclick:) forControlEvents: UIControlEventTouchUpInside];
UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithCustomView: mybutton];
[self.navigationItem setLeftBarButtonItem:customItem];

更新: - 请根据您的边框样式使用此功能。

 [self.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc]initWithTitle:@"Test" style:UIBarButtonItemStyleBordered target:self action:@selector(test:)]];

答案 1 :(得分:0)

UIButton *desiredBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 30, 30)];
UIBarButtonItem *aBarButtonItem = [[UIBarButtonItem alloc]  initWithCustomView:desiredBtn];

然后将此栏按钮添加到导航栏

self.navigationItem.rightBarButtonItem = aBarButtonItem;