在 iOS 中将 self.navigationItem.backBarButtonItem 与设备左侧对齐

Posted

技术标签:

【中文标题】在 iOS 中将 self.navigationItem.backBarButtonItem 与设备左侧对齐【英文标题】:Align the self.navigationItem.backBarButtonItem to left of the device in iOS 【发布时间】:2016-09-14 10:14:11 【问题描述】:

我尝试的是,将图像添加到 UIBarButtonItem 并将 UIBarButtonItem 设置为默认的 backBarButtonItem。

下面是我的代码;

UIImage *backNavImg = [[UIImage imageNamed:@"backward_navigation_arrow"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIBarButtonItem *backBtnItem = [[UIBarButtonItem alloc] initWithImage:backNavImg style:UIBarButtonItemStylePlain target:self action:nil];

self.navigationItem.backBarButtonItem = backBtnItem;

问题是,后栏按钮项目和左边距之间有相当大的空间。我在图像上用红色突出显示了它。

我想以编程方式缩小差距。我怎样才能做到这一点。

我尝试了下面的代码,但没有任何反应。

[backBtnItem setImageInsets:UIEdgeInsetsMake(0, 0, 0, 0)];

【问题讨论】:

【参考方案1】:

您可以通过添加 leftBarButtonItems 来做到这一点

例子:

UIImage *backNavImg = [[UIImage imageNamed:@"backward_navigation_arrow"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIBarButtonItem *backBtnItem = [[UIBarButtonItem alloc] initWithImage:backNavImg style:UIBarButtonItemStylePlain target:self action:nil];

UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
negativeSpacer.width = -8;
self.navigationItem.leftBarButtonItems=@[negativeSpacer,barButton];

【讨论】:

同上面的评论。我想使用self.navigationItem.backBarButtonItem

以上是关于在 iOS 中将 self.navigationItem.backBarButtonItem 与设备左侧对齐的主要内容,如果未能解决你的问题,请参考以下文章

在ios中将json转换为字典

无法在 iOS 中将数据写入 .plist

iOS - 在 UINavigationController 中将 UIViewController 显示为全屏

在 iOS 中将照片从相机发布到 Facebook 页面

在 iOS 中将图标加载到 UIImageView 策略中

在ios中将NSString拆分为NSArray