为啥我们没有 UIBarMetricsLandscapePad?

Posted

技术标签:

【中文标题】为啥我们没有 UIBarMetricsLandscapePad?【英文标题】:Why don't we have UIBarMetricsLandscapePad?为什么我们没有 UIBarMetricsLandscapePad? 【发布时间】:2013-01-27 16:53:44 【问题描述】:

如何在细节拆分视图中为导航栏设置不同的背景图像,以便它处于横向而不是纵向时?

这是我使用的代码

[self.topNavbar setBackgroundImage:[UIImage imageNamed:@"nav-bar-portrait-ipad"]
                                   forBarMetrics:UIBarMetricsDefault];
[self.topNavbar setBackgroundImage:[UIImage imageNamed:@"nav-bar-landscape-ipad"]
                                   forBarMetrics:UIBarMetricsLandscapePhone];

当 splitView 旋转为横向时,永远不会调用 UIBarMetricsLandscapePhone。纵向 (768 px) 模式下 detailView 的宽度与横向 (704 px) 模式下的宽度不同,那么我们如何为每个设置不同的图像呢?

【问题讨论】:

【参考方案1】:

导航栏在 iPad 上的不同方向不会改变高度,因此没有单独的栏指标(不需要不同高度的图像)。

在 iPhone 上,横向导航栏比纵向导航栏短,因此需要不同的图像(渐变图像不能很好地缩放)。导航背景通常一直是相同的,因此宽度通常不是考虑因素。

如果您想在旋转时更改图像,则必须响应旋转事件。

【讨论】:

我意识到高度不会改变,但宽度会改变。我不知道为什么苹果认为我们不需要新的条形指标? 你的图片是什么样的?里面有什么需要改变的?您可以使用带有左右帽子插图的可调整大小的图像吗? 它基本上是一种皮革效果活页夹,例如 cdn4.raywenderlich.com/wp-content/uploads/2012/05/… 不知道如何使这种类型的图像可调整大小...... 也许是平铺的,但您需要小心设计它的方式? (在 ios6 中,您可以为可调整大小的图像指定平铺模式而不是拉伸)

以上是关于为啥我们没有 UIBarMetricsLandscapePad?的主要内容,如果未能解决你的问题,请参考以下文章

RxSwift 为啥我们没有调用 dispose 会有内存泄漏

为啥我们将没有一个是肯定的文字的析取称为目标从句?

为啥我们在 HTML 中没有 role=logo?

java中标记接口的意义何在?为啥没有它们我们就不能继续?

为啥地图上没有我们村?

为啥我们没有在 Spark-Cassandra-Connector 中定义一个 ReaderBuilder 来从 cassandra DB 读取数据