2

1 つの xib ファイルと複数のサブビューを使用して、iOS 8 用のキーボードを作成しました。ただし、このキーボードは縦向きモードでのみ機能し、デバイスが回転してもキーボードのサイズや長さは変わりません。ランドスケープ用のサブビューを含む別の xib ファイルを作成する必要があると考えました。デバイスが回転すると、xib ファイルが切り替わります。私の質問は、これを達成するにはどうすればよいですか? プログラムがいつxibファイルを切り替えるかを知るようにするにはどうすればよいですか。ここで提案されているようなものを使用する必要があると考えていました: https://stackoverflow.com/a/25222353/2057171 しかし、どのように実装するかわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

2

縦向きと横向きの両方に 1 つの xib

xib ファイルでビューの自動レイアウトを有効にすると、縦向きと横向きの両方で xib を 1 つだけ持つことができます。これらは、私が自分のテスト キーボードで行った手順です。

  1. xib ファイルのビューで自動レイアウトを有効にしてセットアップする
  2. そのサブビューを読み込んで「inputView」に追加します
  3. inputView に関連して、このサブビューの制約をプログラムで設定します

「inputView」は、縦向きと横向きを切り替えるとサイズが自動的に変更されるため、「inputView」に関連してビューに制約を設定すると、ビューが自動的に調整されます。

縦向きと横向きで xib を分ける

縦向きビューと横向きビューに別々の xib ファイルを用意する場合は、向きが変わるたびに正しいサブビューを読み込んで inputView に追加する必要があります。私はこれを個人的に行っていませんが、向きが変わるたびに updateViewConstraints() が呼び出されるので、そこにロジックを実装できると思います。

于 2014-09-16T09:23:53.837 に答える