2011-07-06 1 views
1

inputAccessoryViewに設定されたUIToolbarUITextViewとしています。これは編集時にキーボードの上にあるツールバーを表示します。私は、しかし、デバイスを回転させるときに問題が発生しました:ツールバーは少し高さ(32ピクセル対44)になるはずです。私は、ツールバーの高さを更新すると、私はツールバーとキーボードの間に少しの空白を取得:キーボード上部のUIToolbar:フレームを変更しますか?

image http://i54.tinypic.com/1z6bhut.png

だから私はまた、原点を更新するために-didRotateFromInterfaceOrientation:を使用し、肖像画から回転させたとき、それは動作します風景に。バックアップ回転ただし、ツールバーが低すぎるとキーボードを重ね合わ12ピクセルで、ときに:その後することにより

image http://i56.tinypic.com/2eey2cl.png

、起源は再び(0,0)で、負の値を設定する助けにはなりませんでした。どのようにツールバーがそのサイズを変更し、重複しないように動作させるための提案?

答えて

1

[textView resignFirstResponder]-willRotateToInterfaceOrientation:duration:に、[textView becomeFirstResponder]-didRotateFromInterfaceOrientation:に修正しました。システムがフレームを適切に調整しているようです。

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    didShowKeyboard = [self.textView isFirstResponder]; 

    [self.textView resignFirstResponder]; 
} 

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation 
{ 
    CGRect toolbarFrame = [self.navigationController.toolbar bounds]; 
    self.keyboardToolbar.frame = toolbarFrame; 

    if (didShowKeyboard) 
     [self.textView becomeFirstResponder]; 
} 
0

オリジンとサイズを計算する代わりに、自動サイズ調整を使用して回転中にコントロールをレンダリングすることができます。

は、私は、これはあなたにヒントを与えることができると思いhttp://www.bogotobogo.com/XcodeSDK-Chapter4.html

このチュートリアルを参照してください。

+0

ツールバーと[inputAccessoryView]で自動サイズ調整を使用してみましたが、機能しませんでした。また、ビューのスワップを試みましたが、奇妙な結果がありました。どのようにツールバーを別のツールバーに交換しますか? 'inputAccessoryView'を更新しても、' [toolbar removeFromSuperview] 'は役に立ちませんでした。 – fabian789

関連する問題