1

私のアプリケーションでは、UIToolBar が 1 つあります。縦向きモードの場合、このツールバーは上部にあり水平ですが、デバイスを回転させると、このツールバーは垂直ツールバーに変換され、左側に配置される必要があります。また、そのサブビュー、つまり 5 つの UIBarButtonItems もそれに応じて配置する必要があります。

これに対する解決策を知っている人はいますか?

これを参照用に読みましたが、ツールバーは向きに応じて自動的に整列するはずです。iOS6を使用しています。

4

2 に答える 2

0

私はこの同じ問題に遭遇したので、サブクラスUIToolbar化して、まさに私が望んでいたものにしました。GitHub リンクは次のとおりです: https://github.com/fennelouski/NKFToolbar

于 2016-01-28T11:00:37.863 に答える
0

組み込みの垂直メニュー機能は (まだ) ありません。あなたの質問には2つの部分があります:

垂直UIToolbar :

デバイスの向きを制限することができ、ツールバーは同じ場所に残ります

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}

(これはすべてのビューに影響します)

または、向きの変更をリッスンし、transform プロパティを使用してそれに応じてツールバーを回転させることができます。

toolbar.transform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI/2);

回転したUIBarButtonItem :

ツールバーを回転した場合 (上記のケース 2)、項目も回転します。そうでない場合は、アイテムをローテーションする必要があります。いくつかの投稿では、UIBarButtonItem は UIView を拡張しないため、変換プロパティがないという事実に対処する方法を示しています (こちらを参照)。最後に、方向の変更をリッスンし、ツールバーのサブビューを回転させる必要があります。

for (UIView *view in toolbar.subviews) {
    view.transform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI/2);
}

もちろん、向きに関連する回転を適用します (M_PI/2 または -M_PI/2)。

于 2013-01-18T14:02:55.627 に答える