1

我有两个UIToolbar实例,一个添加在屏幕顶部,一个添加在底部。我想使用 iOS 5 外观协议来设计这些样式。

我可以使以下工作:

[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"toolbarimage.png"]
                            forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];

但是,我无法获取UIToolbarPositionTopUIToolbarPositionBottom使用我以编程方式添加的工具栏。我正在创建这样的工具栏:

_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 与界面构建器文件配合得很好,但有谁知道让它们以编程方式工作的方法?

4

1 回答 1

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];

我找到了一个类似的答案,其中详细说明了为什么UIToolbarPositionTopetc 是系统属性,不应在此答案中依赖。

于 2012-11-05T18:29:09.843 回答