UIViewController
からプログラムの下のツールバーに2 UIBarButtonItem
を追加しようとしています。今はボタンを作成してNSArray
に追加してから[self setToolbarItems:buttonArray animated:YES]
を呼び出しています。これにより、ボタンをツールバーの左下隅に追加します。私がしたいのは、ツールバーの左下に1つのボタンを追加し、右下にもう1つのボタンを追加することです。これをどうやってやりますか?setToolbarItemsを使用してレイアウトを制御するにはどうすればよいですか?
答えて
あなたtoolBarItemsはそのようなものになります。それは、iOSのように見えます
ボタンの間にUIBarButtonSystemItemFlexibleSpace
という名前のシステムバーボタンアイテムを追加できます。それは両側にそれらをプッシュします。
あなたは手動で上のwidthプロパティを設定することで間隔を制御したい場合は、バーのボタンシステム項目UIBarButtonSystemItemFixedSpace
を使用することができますバーボタンシステム項目UIBarButtonSystemItemFlexibleSpace
UIBarButtonItem *leftButton; // set that
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *rightButton; // set that
NSArray *items = [NSArray arrayWithObjects:leftButton, flexibleSpace, rightButton, nil];
[toolbar setItems:items];
[flexibleSpace release];
// release the other two if necessary
を使用する必要があります。
最初と最後のアイテムにこのようなアイテムがあり、iOSは回転 – Carl
が上のツールバーのレイアウトをリフレッシュしません:
はUIBarButtonItem *firstButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemTrash target:self action:@selector(someSelector)];
UIBarButtonItem *secondButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(someSelector)];
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
self.toolbarItems = [NSArray arrayWithObjects:firstButton, flexibleSpace, secondButton,nil];
[firstButton release], [secondButton release], [flexibleSpace release];
これは、あなたにそのような何かを与えますツールバー項目がストーリーボードで定義されるのではなくコードを使用して追加された場合、デバイスの回転。
解決策は、viewWillTransition
ハンドラを追加し、VCのtoolbaritems
をnilに設定し、次に希望するバーボタン項目に戻すことです。
// method within a UIViewController class
// set to nil so that iOS places buttons correctly on a rotation
tools = ... // an [UIBarButtonItem]
toolbarItems = nil
setToolbarItems(tools, animated: false)
あなたのツールバーには、[FlexibleSpace] [UIBarButtonItem] [FlexibleSpaceあった場合は、デバイスを回転させたときに、このハンドラはそのツールバーの中央にBarButtonItem
を続けるだろう。
- 1. JavaScriptを使用してPhotoshopでズームレベルを制御するにはどうすればよいですか?
- 2. PHPを使用して不快なコメントを制御するにはどうすればよいですか?
- 3. JSliderを使用してPCスピーカーの音量を制御するにはどうすればよいですか?
- 4. MediaControllerCompatを使用して現在のプレーヤーを制御するにはどうすればよいですか?
- 5. iPhoneを使用してマウスを制御するにはどうすればよいですか?
- 6. ラティスとレベルプロットを使用してヒートマップを制御するにはどうすればよいですか?
- 7. Linuxでカーソルを制御するにはどうすればよいですか?
- 8. サブレポートのレイアウトはどのように制御できますか?
- 9. ユーザーアセットを制御するにはどうすればよいですか?
- 10. オムニスレッドライブラリのスレッドプールでのメモリ使用量を制御するにはどうすればよいですか?
- 11. スレッドによって制御されるプロセスを停止するにはどうすればよいですか?
- 12. Powershellで書式を制御しているときにget-dateを使用して月を変更するにはどうすればよいですか?
- 13. アプリケーションをインストールしてServer 2008のユーザーアカウント制御をバイパスするにはどうすればよいですか?
- 14. kubernetes PersistentVolumeClaimを制御して特定のPersistentVolumeにバインドするにはどうすればよいですか?
- 15. eclipseを使ってJavaFX 8プロジェクトをgitリポジトリでどのように制御すればよいですか?
- 16. NetBeansを使用してJPanelからレイアウトを削除するにはどうすればよいですか?
- 17. ASPメンバーシップを使用して、どのウィジェットをWebサイトにロードするかを制御するにはどうすればよいですか?
- 18. カスタムチェックインポリシーがいつ評価されるのかを制御するにはどうすればよいですか?
- 19. ImageMagickでPDF用紙サイズを制御するにはどうすればよいですか?
- 20. Android:タグを使用してフラグメントインスタンスのレイアウトを取得するにはどうすればよいですか?
- 21. CSSを使用して枠線レイアウトを作成するにはどうすればよいですか?
- 22. 角度アコーディオンをプログラムで制御するにはどうすればよいでしょうか?
- 23. divのHTMLのようにAndroidでレイアウトを使用するにはどうすればよいですか?
- 24. ブラウザで戻るボタンを使用しているときにリロードを制御するにはどうすればよいですか?
- 25. PropertyGridでツールチップが表示される時間を制御するにはどうすればよいですか?
- 26. Illustrator CS5 [Very Basic]で選択したオブジェクトを制御するにはどうすればよいですか?
- 27. 複数のコントローラファクトリをロードし、次のコントローラに制御を渡すにはどうすればよいですか?
- 28. WCFでのメッセージの流れを制御するにはどうすればよいですか?
- 29. JAXBアノテーションを使用してパターン制約を指定するにはどうすればよいですか?
- 30. htaccessを使用してエントリへのアクセスを制限するにはどうすればよいですか?
私は最初と最後のアイテムにそのようなアイテムがあり、iOSは回転のツールバーアイテムのレイアウトを更新しません。 – Carl