我正在编写仅针对 iOS5 设备的应用程序,因此我试图最大限度地利用新的appearance
API.
我可以改变我的背景UIToolbar
用以下方法:
[[UIToolbar appearance] setBackgroundImage:<myImage> forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
一切工作正常,但我正在寻找更多的定制,所以我想知道如何使用UIToolbarPosition
我遇到了一些问题。使用 InterfaceBuilder 或添加UIToolbar
以编程方式我将其放置在主视图的顶部 - 所以我期待UIToolbarPosition
被设置为UIToolbarPositionTop
,但从我正在测试的情况来看,它不会自动工作,也找不到任何允许我设置的 APIUIToolbarPosition
(是的,我已经用谷歌搜索过了)。
所以 - 主要问题 - 如何创建UIToolbar
并正确标记它,这样它只能响应UIToolbarPositionTop
or UIToolbarPositionBottom
,所以我可以使用:
[[UIToolbar appearance] setBackgroundImage:<myImage_1> forToolbarPosition:UIToolbarPositionTop barMetrics:UIBarMetricsDefault];
[[UIToolbar appearance] setBackgroundImage:<myImage_2> forToolbarPosition:UIToolbarPositionBottom barMetrics:UIBarMetricsDefault];
EDIT:根据要求提供更多详细信息。
我的应用程序中有多个工具栏 - 例如,两个屏幕上的屏幕顶部的工具栏、充当键盘辅助视图的工具栏以及模态屏幕底部的 2 个工具栏。我想最大限度地利用新的外观 API,而不是在每个屏幕上自定义工具栏,因此我询问整个 UIToolbarPosition 的问题以及如何使用它。
我知道我可以通过单独自定义每个 UIToolbar 来实现我想要的,但我只是对新的 API 和 UIToolbarPosition 用法感到好奇。
UIToolbarPostion
不是您应该以编程方式设置的属性 - 相反,它允许您告诉程序当工具栏位于不同位置时如何处理工具栏。这主要适用于因屏幕变化(自动旋转)而移动的工具栏,或者位于具有可变内容的导航控制器之类的工具栏。
话虽这么说,如果您想直接访问工具栏以便可以使用它们/设置属性/等,有几种方法。听起来你知道什么是标签,这是一个有效的方法 - 只需在 IB 中或以编程方式给工具栏一个标签(编辑 IB 侧栏中的标签属性或使用.tag
声明工具栏时的属性)。然后您可以使用viewWithTag
访问工具栏的方法。然而,更好的方法是通过从工具栏按住 Control 键拖动到头文件来为工具栏创建 IB 属性(与标签或按钮相同)。然后你就可以写[nameOfToolbarProperty doSomeMethod]
。如果您使用代码创建工具栏,则只需以相同的方式对其进行引用即可,例如
UIToolbar *tref = [/*toolbar creation code*/];
总之,你的代码
[[UIToolbar appearance] setBackgroundImage:<myImage_1> forToolbarPosition:UIToolbarPositionTop barMetrics:UIBarMetricsDefault];
可以通过添加来使其工作
//Connect this to your toolbar in Interface Builder
@property (weak, nonatomic) IBOutlet UIToolbar *tref;
到你的标题。然后就做
[tref setBackgroundImage:<myImage_1> forToolbarPosition:UIToolbarPositionTop barMetrics:UIBarMetricsDefault];
请注意,这只是告诉程序如果工具栏位于顶部位置则显示什么图像 - 它不会设置工具栏的位置。UIToolbarPosition
是一个常数(所以你不能设置它)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)