0

の標準キーボードを置き換えるために使用することを目的としたカスタム入力ビューを作成しましたUITextView。カスタムUIViewを my として割り当てると、ポートレート モードとランドスケープ モードの両方で期待どおりに動作しますUITextViewinputView

この問題は、デバイスを回転させたときに発生します。これを行うと、カスタムUIViewがキーボードを覆うだけでなく、画面全体に拡大されます。このためのカスタム サイズ変更コードはどこにもありません。文字通り、UIView を UITextView の inputView プロパティとして割り当ててから、デバイスを回転させているだけです。

デバイスを回転させたときに、カスタム キーボード ビューを通常のキーボードが占有するスペースだけを占有するようにするにはどうすればよいですか?

4

4 に答える 4

2

この問題がありました。これを修正する方法は次のとおりです。

  1. キーボードのviewcontroller.mファイルを開きます

  2. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientationメソッドを見つける

  3. NOを返すようにします。

私の推測では、ビューが二重回転を行っていたということです。

于 2011-07-02T03:39:33.707 に答える
2

私が覚えていれば、これautoresizingMaskUIViewAutoresizingNoneデフォルトです。あなたはするautoresizingMask必要がありますUIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin

于 2011-06-09T16:51:35.383 に答える
1

inputViewsをautoresizingMask=UIViewAutoresizingNone;にします。autoresizingMask(バージョン固有)のさまざまな値で遊ぶことが役立つでしょう。

これが私がiPadのためにしばらく前に考え出したいくつかの詳細です(これはあなたを助けるかもしれません):

  1. 入力ビューがピッカービューの場合、デフォルトで自動サイズ変更が行われます。これは、フレームが必要な四角形に設定されていることを意味します。iPadのさまざまなターゲット/バージョンでこれが行われる方法には少し矛盾があります。
    1. autoresizemask少なくともautoresizeflexiblewidthすべてのターゲットに含まれている必要があります。
    2. iPad3.2で有効になっていない 場合、 Rectはdefault(initial)高さに設定されますautoresizeflexibleheight
    3. iPad4でが設定されている場合、不適切な座標(x、y)に設定されたRectは、ピッカービューにマスクを autoresizeflexibleheight使用しないでください。autoresizeflexibleheight
  2. inputviewがピッカービューでない場合は、 autoresizemasksforflexibleheightをオフにする必要があります。
于 2011-06-09T16:32:56.830 に答える