在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)的默认图像位置(框架),而无需制作自定义按钮?我需要它将图像向左移动一点,但我不想用近似偏移量在视觉上进行操作。
答
可以使用边缘插图
对于按钮上的文字标题:
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
你可以发表scre en shot? –
@KetanP,我添加了问题的截图链接。 – nemissm
您需要提供更多的代码细节,并指定更好的解决方案。 – brito