iPhone:设置navigationItem按钮的width属性

时间:2012-02-06 16:43:43

标签: iphone uinavigationcontroller uinavigationitem rightbarbuttonitem

我一直试图绕过设置navigationitem按钮的宽度属性,但无法找到完成我正在寻找的方法。

以下代码工作正常设置按钮大小我想要的和很好地显示但我没有看到实际按钮,它只是我的图像。它应该看起来像按钮,它有背景图像!

UIButton *addCommentButton = [UIButton buttonWithType:UIButtonTypeCustom];
[addCommentButton setFrame:CGRectMake(0, 0, 25, 25)];
[addCommentButton addTarget:self action:@selector(addComment) forControlEvents:UIControlEventTouchUpInside];
[addCommentButton setBackgroundImage:[UIImage imageNamed:@"myImage.png"] forState:UIControlStateNormal];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:addCommentButton];

以下代码确实如此,但我无法设置按钮大小(25,25)!!

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"myImage.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(addComment)];

我尝试明确设置宽度,但确实没有区别!

[[self.navigationItem rightBarButtonItem] setWidth] = 25;

有人可以帮我解决这个问题。感谢。

2 个答案:

答案 0 :(得分:0)

我没有快速解释来解决您的问题,但我认为以下链接中发布的代码可以帮助您解决问题。

Customization of UINavigationBar and the back button

答案 1 :(得分:0)

您的第一个代码段会生成一个自定义按钮,该按钮不具有“按钮”外观。第二个代码片段为UIBarButtonItem提供了一个带边框的UIBarButtonItem样式(不是UIButton)。使用第一个代码段,只需创建一个按钮类型为RoundedRect而不是Custom的UIButton。