4

私は iPad アプリケーションを持っており、画面の 1 つに のとして設定UIToolbarしています。私も と を持っています。titleViewviewControllernavigationItemleft-rightBarButtonItem

横向きで画面に入ってデバイスを回転させると、titleView中央に残ります。ただし、反対のことをすると(縦向きで入力してデバイスを回転させる)、titleViewが右にずれます。これを修正する方法はありますか?これが私のコードです:

UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 350, self.navigationController.navigationBar.frame.size.height)];
UIToolbar *titleToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 350, self.navigationController.navigationBar.frame.size.height)];
titleToolbar.items = @[commentButton, spacer2, downloadButton, spacer3, homeButton, spacer4, pageDisplayButton, spacer5, searchButton];
titleToolbar.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[titleView addSubview:titleToolbar];
self.navigationItem.titleView = titleView;

編集:

どちらのself.navigationItem.titleView.frame.sizeシナリオでも同じですが、変更点はorigin.x

4

1 に答える 1

3

toolbar を使用している場合は、titleView を subView として追加しないでください。代わりに、items 配列に追加します。

UIToolbar *titleToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 350, self.navigationController.navigationBar.frame.size.height)];

UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 350, titleToolbar.frame.size.height)];

バーボタン項目を titleViewBtn として追加し、ボーダーをプレーンにします。

titleToolbar.items = @[commentButton, spacer2, downloadButton, spacer3, homeButton, spacer4, **titleViewBtn** , pageDisplayButton, spacer5, searchButton];
titleToolbar.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
于 2013-07-01T09:17:10.250 に答える