1

2 つのUIToolbarインスタンスがあり、1 つは画面の上部に追加され、もう 1 つは下部に追加されます。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 はインターフェースビルダーファイルで正常に動作しますが、プログラムで動作させる方法を知っている人はいますか?

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

同様の回答が見つかりました。なぜetcがシステムプロパティであり、この回答UIToolbarPositionTopに頼るべきではないかについての詳細が含まれています。

于 2012-11-05T18:29:09.843 に答える