【问题标题】:Centering Logo In Landscape In UINavigationBar On iPad在iPad上的UINavigationBar横向居中徽标
【发布时间】:2012-02-13 17:18:06
【问题描述】:

在我的 iPhone 应用程序中,我有以下代码来设置应用程序中横向和纵向标题栏的背景图像。

if ([UINavigationBar respondsToSelector:@selector(appearance)]) {
    [[UINavigationBar appearance] setBackgroundImage: [UIImage imageNamed:@"titlebar_landscape.png"] forBarMetrics:UIBarMetricsLandscapePhone];
    [[UINavigationBar appearance] setBackgroundImage: [UIImage imageNamed:@"titlebar.png"] forBarMetrics:UIBarMetricsDefault];  
    [[UINavigationBar appearance] setBackgroundColor: [UIColor redColor]];
}

图片是以渐变背景为中心的应用程序徽标,相应地调整了横向大小。我为我的 iPad 版本的应用程序做了同样的事情,但是横向图像不起作用,因为 iPad 上的横向没有特定的选项,就像 iPhone UIBarMetricsLandscapePhone 上那样。

所以我的问题是如何在我的 iPad 上实现类似的效果,我的应用程序徽标在 iOS5 的横向模式下以渐变背景为中心?

【问题讨论】:

  • Apple Bug:这应该是可能的。如果我们仍然必须手动进行这种黑客攻击,那么外观系统就非常愚蠢(我不知道 Apple 怎么没注意到应用程序在不同的 iPad 方向上使用不同的背景 - Apple 自己做的!)

标签: ios ipad ios5 uinavigationbar


【解决方案1】:

无论方向如何,iPad 都使用相同的条形指标,因此您只需设置 UIBarMetricsDefault 图像。 iPhone 横向度量是因为系统在横向模式下使用 iPhone 上略短的导航栏。所有其他导航栏的尺寸都较大,包括 iPad 上显示的任何导航栏。

【讨论】:

  • 我明白,但你错过了这个问题。问题不在于 iPad 是如何工作的,而是如何在标题栏中的横向视图中获得居中的图像?
  • 我认为您的图像只是相同的东西,但经过调整以适应两个不同的高度。如果您必须在 iPad 上为横向模式使用不同的背景图像,那么您必须在 UIViewController 子类的 willRotateToInterfaceOrientation:duration: 方法中将其换出。由于 iPad 仅使用一个指标,因此您无法在 UINavigationBar 中获得自动交换行为来为您执行此操作。
【解决方案2】:

【讨论】:

  • 这是给 iPhone 的。问题在于@john 指出 iPad 对两个方向使用相同的度量。这使得图像难以居中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2013-03-28
  • 2016-04-29
  • 1970-01-01
  • 1970-01-01
  • 2012-01-30
相关资源
最近更新 更多