获取 UIBarButtonItem 图像相对于其导航栏的位置 iOS 7
Get UIBarButtonItem image position relative to its navigation bar in iOS 7
我有一个草图界面原型,我可以从中获取 UI 元素的坐标。当我用图像创建栏按钮时,它被放置在导航栏上的默认位置。代码如下:
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];
您可以使用 KVC 访问当前导航栏项目视图
UIView *leftBarButtonItemView = [self.navigationItem.leftBarButtonItem valueForKey:@"view"];
我有一个草图界面原型,我可以从中获取 UI 元素的坐标。当我用图像创建栏按钮时,它被放置在导航栏上的默认位置。代码如下:
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];
您可以使用 KVC 访问当前导航栏项目视图
UIView *leftBarButtonItemView = [self.navigationItem.leftBarButtonItem valueForKey:@"view"];