为所创build的UIToolbar设置UIToolbarPosition
我正在编写仅针对iOS5设备的应用程序,因此我正试图最大限度地利用新appearance
API。
我可以用下面的方法改变我的UIToolbar
背景:
[[UIToolbar appearance] setBackgroundImage:<myImage> forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
一切工作正常,但我正在寻找更多的定制,所以我想知道UIToolbarPosition
用法,我遇到了一些问题。 使用InterfaceBuilder或以编程方式添加UIToolbar
我将其定位在主视图的顶部 – 所以我期待UIToolbarPosition
被设置为UIToolbarPositionTop
,但是从我testing它不能自动工作,也不能find任何API允许我设置UIToolbarPosition
(是的,我已经Googlesearch了)。
所以 – 主要问题 – 如何创buildUIToolbar
并正确标记,所以它只能响应UIToolbarPositionTop
或UIToolbarPositionBottom
,所以我可以使用:
[[UIToolbar appearance] setBackgroundImage:<myImage_1> forToolbarPosition:UIToolbarPositionTop barMetrics:UIBarMetricsDefault]; [[UIToolbar appearance] setBackgroundImage:<myImage_2> forToolbarPosition:UIToolbarPositionBottom barMetrics:UIBarMetricsDefault];
编辑:更多细节,如问。
我的应用程序中增加了多个工具栏,例如,两个屏幕上的屏幕顶部的工具栏,作为键盘附件视图的工具栏和模态屏幕底部的2个工具栏。 我想最大限度地利用新的外观API,而不是在每个屏幕上自定义工具栏,因此我问了整个UIToolbarPosition的东西,以及如何使用它。
我知道我可以通过自定义每个UIToolbar来实现我想要的function,但是我只是对新的API和UIToolbarPosition的使用感到好奇。
UIToolbarPostion
不是您应该以编程方式设置的属性,而是允许您告诉程序如何处理位于不同位置的工具栏。 这主要是工具栏被屏幕变化(自动旋转)推动,或者像一个有可变内容的导航控制器。
这就是说,如果你想直接访问你的工具栏,以便你可以使用他们/设置属性/等有几个方法。 这听起来像你知道什么标签是,这是一个有效的方法 – 只需在IB或以编程方式给工具栏一个标签(或者编辑边栏的标签属性为IB或当您声明工具栏时使用.tag
属性) 。 然后,您可以使用viewWithTag
方法来访问您的工具栏。 但是,更好的方法是通过控件拖动到工具栏的头文件中来创build工具栏的IB属性(与标签或button相同)。 那么你可以写[nameOfToolbarProperty doSomeMethod]
。 如果你用代码创build你的工具栏,那么就用同样的方法来引用它
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
是一个常量(所以你不能设置它)。