ios - 无法将 UINavigationBar 中的图像设置到中心

标签 ios objective-c uinavigationbar

我在我的导航 Controller 中使用了两个图像。一个用于 rightBarButtonItem,一个用于 titleView。我在代码中创建了两者。所以我的问题是标题 View 不在中间,它离左边有点近。是因为右栏按钮,是肯定的,我测试了一下,发现了一些相关的问题,但是还是没能解决问题。

我尝试了 [[UIBarButtonItem appearance] setTitlePositionAdjustment:UIOffsetMake(0.0f, 0.0f) forBarMetrics:UIBarMetricsDefault]; 但没有帮助我。我真的很感激任何建议。

- (void)setupLogo {

    [self setNeedsStatusBarAppearanceUpdate];

    CGRect myImage = CGRectMake(0, 0, 41, 41);
    UIImageView *myLogo = [[UIImageView alloc] initWithFrame:myImage];
    [myLogo setImage:[UIImage imageNamed:@"logo.png"]];
    myLogo.contentMode = UIViewContentModeScaleAspectFit;
    self.navigationItem.titleView = myLogo;
    [[UIBarButtonItem appearance] setTitlePositionAdjustment:UIOffsetMake(0.0f, 0.0f) forBarMetrics:UIBarMetricsDefault];

}

最佳答案

titleView 位于左侧和右侧项目之间。它不以导航栏为中心。

一种可能的解决方案是添加一个与右侧栏按钮项目大小相同的虚拟左侧栏按钮项目。这将强制 titleView 居中。

关于ios - 无法将 UINavigationBar 中的图像设置到中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27758098/

相关文章:

ios - 如果图像被另一个应用程序(如照片、safari 等)复制,我如何从 UIPasteboard 获取图像的原始数据。

ios - 当触摸 bg 时,如何淡入半透明 UIVIew 并关闭?

iphone - 在 iOS 中显示弹出窗口

iOS顶部导航栏设置标题颜色

iphone - 更改 UINavigationBar 的后退按钮

ios - UITapGestureRecognizer 不在导航栏标题 View 中的 UIView 上工作?

c# - UITapGestureRecognizer xamarin - 多次点击快速显示多个 View

objective-c - iOS:访问 XML 数据记录的简便方法?

iphone - stopMonitoringForRegion with dummy lat long but the right "identifier"

objective-c - 我的系统拒绝使用 NSAppleScript 类关闭/重启