如何定位UIBarButtonItem并向其添加图像?

时间:2014-09-19 17:42:36

标签: iphone ios7 xcode5 uibarbuttonitem

屏幕截图:Screenshot

嗨,

我不是编码员,除了一些HTML / CSS之外,我没有很多的经验。我只是一个正常的家伙试图建立他的第一个应用程序:)

这是我当前的问题:我想给UINavigationBar中的每个按钮提供它自己的图像并定位它们以便它们在条形图上而不是如图所示悬挂它截图。我希望左边的按钮位于最左边,右边的按钮位于最右边,加上它们两个都有点向上。

现在我设法至少为所有按钮提供相同的图像(通过UIBarButtonIteam外观)。当然,这不是我的意图。每个按钮都应该有自己的图像。

你能帮我解决这个问题吗?完成这项工作最简单的方法是什么?我也使用Xcode 5 / iOS 7。

4 个答案:

答案 0 :(得分:0)

您应该使用initWithImage:style:target:action而不是使用外观代理(将为UIBarButtonItem的每个实例设置样式)。

答案 1 :(得分:0)

试试此代码可能会对您有所帮助....

UIButton  *done=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 44, 44)];
[done setBackgroundImage:[UIImage imageNamed:@"imageName.png"] forState:UIControlStateNormal];

UIBarButtonItem *done1=[[UIBarButtonItem alloc]initWithCustomView:done];

答案 2 :(得分:0)

此代码对您有帮助:

UIImage * bar_img = [UIImage imageNamed:@" yourbarimage.png"];     [self.navigationController.navigationBar setBackgroundImage:bar_img forBarMetrics:UIBarMetricsDefault];

UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *backBtnImage = [UIImage imageNamed:@"YourImage.png"]  ;
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal];
[backBtn addTarget:self action:@selector(ActionOnClick) forControlEvents:UIControlEventTouchUpInside];
backBtn.frame = CGRectMake(0, 0, 44, 44);

UIView *backview=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 44, 44)];
[backview addSubview:backBtn];

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:backview] ;
self.navigationItem.leftBarButtonItem = backButton;
[self.navigationController.navigationBar setHidden:NO];

答案 3 :(得分:0)

试试这个。

它会帮助你。在ios 6和ios 7中

UIImage *image = [UIImage imageNamed:@"filer_iphone.png"];
//for only ios 7
if ([UIImage instancesRespondToSelector:@selector(imageWithRenderingMode:)])
{
    image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
UIBarButtonItem *item=[[UIBarButtonItem alloc]
                                 initWithImage:image style:UIBarButtonItemStyleBordered      target:self   action:@selector(onSettingsClicked:)];
[self.navigationItem setRightBarButtonItem:rightBarButoom];

同样适用于左UIBarButton。