我有两个UIToolbar
个实例,一个添加在屏幕顶部,一个添加在底部。我想使用iOS 5外观协议来设置这些样式。
我可以使用以下方法:
[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"toolbarimage.png"]
forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
但是,我无法让UIToolbarPositionTop
或UIToolbarPositionBottom
使用我以编程方式添加的工具栏。我正在创建这样的工具栏:
_topBar = [[UIToolbar alloc] initWithFrame: CGRectMake(0, 0, self.view.frame.size.width, 44)];
_topBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self.view addSubview: _topBar];
_bottomBar = [[UIToolbar alloc] initWithFrame: CGRectMake(0, self.view.frame.size.height - 44, self.view.frame.size.width, 44)];
_bottomBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self.view addSubview: _bottomBar];
据我了解,UIToolbarPositionTop可以正常使用界面构建器文件,但有没有人知道如何让它们以编程方式工作?
答案 0 :(得分:4)
这是一个相对简单的修复。而不是使用一般的
[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"toolbarimage.png"]
forToolbarPosition:UIToolbarPositionAny
barMetrics:UIBarMetricsDefault];
可以将特定工具栏作为目标:
// Setup top tool bar
UIToolbar *topToolbar = [[UIToolbar alloc] init];
[topToolbar setBackgroundImage:[UIImage imageNamed:@"top_toolbar.png"]
forToolbarPosition:UIToolbarPositionAny
barMetrics:UIBarMetricsDefault];
// Setup bottom toolbar
UIToolbar *bottomToolbar = [[UIToolbar alloc] init];
[bottomToolbar setBackgroundImage:[UIImage imageNamed:@"bottom_toolbar.png"]
forToolbarPosition:UIToolbarPositionAny
barMetrics:UIBarMetricsDefault];
我找到了类似的答案,其中详细说明了为什么UIToolbarPositionTop
等是系统属性,不应该依赖in this answer。