在iOS 7中获取相对于其导航栏的UIBarButtonItem图像位置

问题描述:

我有一个草图接口原型,可以从中获取UI元素的坐标。当我使用图像创建栏按钮时,它被置于导航栏上的默认位置。代码如下:在iOS 7中获取相对于其导航栏的UIBarButtonItem图像位置

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"my-image"] style:UIBarButtonItemStylePlain target:self action:nil]; 

此默认位置与期望的位置不同。是否有可能找出相对于其导航栏 (white rect on this screenshot)的默认图像位置(框架),而无需制作自定义按钮?我需要它将图像向左移动一点,但我不想用近似偏移量在视觉上进行操作。

+0

你可以发表scre en shot? –

+0

@KetanP,我添加了问题的截图链接。 – nemissm

+0

您需要提供更多的代码细节,并指定更好的解决方案。 – brito

可以使用边缘插图
对于按钮上的文字标题:

button.titleEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, 0.0, 5.0); 

对于按钮,图像:

button.imageEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, 0.0, 5.0); 


或者,如果你想水平移动唯一的按钮:

UIBarButtonItem *spaceButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; 
[spaceButtonItem setWidth:-3]; // to move on the left 
self.navigationItem.leftBarButtonItems = @[spaceButtonItem, leftButton]; 
+0

谢谢,我知道移动栏按钮的方法,但问题是关于获取图像(不是酒吧按钮)的位置。因为使用这种方法,我只能尝试一些偏移值,直到位置看起来不错。但是我怎么能知道我把图像放在模型中描述的同一点? – nemissm