顶部/底部位置的 UIToolbar 外观界面

Posted

技术标签:

【中文标题】顶部/底部位置的 UIToolbar 外观界面【英文标题】:UIToolbar appearance interface for top/bottom position 【发布时间】:2014-01-16 16:31:17 【问题描述】:

视图中有两个UIToolbars,在顶部和底部。而且我正在尝试在 ios 版本中一致地应用外观。从iOS5开始就有这个setBackgroundImage: forToolbarPosition:,它把参数命名为topOrBottom。但是参数类型UIBarPosition 是一个枚举,肯定有两个以上的选项(这是Or 建议的IMO),而且仅在iOS7 之后才声明存在(并且在线Apple 文档确认了它)。

观察到的效果是图像仅在 iOS7 上按位置应用。在 iOS6 上,无论位置参数如何,图像都会应用于两个位置。这并不奇怪,因为UIBarPositioningDelegate 没有在 iOStoolbarPosition这个参数是从iOS5开始就存在的,所以问题来了:在iOSUIAppearance 使用吗?

【问题讨论】:

【参考方案1】:

我也能够在 XCode 4.6.3 中重现此错误。我认为这要么是错误,要么是错误的文档。在 Xcode 4.6.3 中,这里是 UIToolbarPosition 的文档,后来改为 UIBarPosition。

UIToolbarPositionAny
Indicates the toolbar may be in any position.
Available in iOS 5.0 and later.
Declared in UIToolbar.h.

UIToolbarPositionBottom
Indicates the toolbar is at the **top** of its containing view.
Available in iOS 5.0 and later.
Declared in UIToolbar.h.

UIToolbarPositionTop
Indicates the toolbar is at the **bottom** of its containing view.
Available in iOS 5.0 and later.
Declared in UIToolbar.h.

如您所见,此处的文档甚至似乎是错误的。所以我相信要么我们误解了 UIToolbarPosition 和 UIBarPosition 的含义(它们可能只指不太可能但可能的阴影),或者这是一个错误。海事组织

编辑:

typedef enum 
   UIToolbarPositionAny = 0,
   UIToolbarPositionBottom = 1,
   UIToolbarPositionTop = 2,
 UIToolbarPosition;

【讨论】:

好吧,我不认为这是一个错误,而是希望有人指出一个错误,所以 +1 提醒:) 你能告诉我这个原始枚举的值是什么吗?我想确保他们平等解决。 以上是原来的UIToolbarPoistion枚举。你还想要什么? 我的意思是价值观。它们是否分配了一些明确的值,或者它们是否默认为 0、1、2?新的 iOS7 枚举甚至没有相同的名称。尽管最接近的等价物可能会解析为相同的值。这就是我要问的。

以上是关于顶部/底部位置的 UIToolbar 外观界面的主要内容,如果未能解决你的问题,请参考以下文章

如何在屏幕顶部添加 UIToolbar?

UIImageView 显示图像时如何防止 UIToolbar 调整大小?

android 如何让UI顶部和底部固定

iOS7 UIToolbar 上缺少阴影(细线)

UIToolbar 在屏幕顶部时无法正确旋转

以编程方式位于底部的 UIToolbar