私のアプリケーションでは、UIToolBar が 1 つあります。縦向きモードの場合、このツールバーは上部にあり水平ですが、デバイスを回転させると、このツールバーは垂直ツールバーに変換され、左側に配置される必要があります。また、そのサブビュー、つまり 5 つの UIBarButtonItems もそれに応じて配置する必要があります。
これに対する解決策を知っている人はいますか?
これを参照用に読みましたが、ツールバーは向きに応じて自動的に整列するはずです。iOS6を使用しています。
私のアプリケーションでは、UIToolBar が 1 つあります。縦向きモードの場合、このツールバーは上部にあり水平ですが、デバイスを回転させると、このツールバーは垂直ツールバーに変換され、左側に配置される必要があります。また、そのサブビュー、つまり 5 つの UIBarButtonItems もそれに応じて配置する必要があります。
これに対する解決策を知っている人はいますか?
これを参照用に読みましたが、ツールバーは向きに応じて自動的に整列するはずです。iOS6を使用しています。
私はこの同じ問題に遭遇したので、サブクラスUIToolbar
化して、まさに私が望んでいたものにしました。GitHub リンクは次のとおりです: https://github.com/fennelouski/NKFToolbar
組み込みの垂直メニュー機能は (まだ) ありません。あなたの質問には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)。