3

私はIOS開発を学び始めたばかりです。この問題のトラブルシューティングに何日も費やしましたが、どこにも行き着きません。うまくいけば、誰かが助けてくれるでしょう。

私はiPhone用の電卓アプリに取り組んでいました(練習用)。ボタンのグリッドを作成しましたが、最後の行の作成を開始すると、各ボタンを作成または移動した後、xCode がクラッシュし続けました。最終的にレイアウトを作成しましたが、アプリを実行すると、下の行のボタンのテキストが表示されません (IOS シミュレーターまたは iPhone で):

             +----+ +----+ +----+ +----+ +----+
             | 7  | | 8  | | 9  | | +  | | -  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 4  | | 5  | | 6  | | /  | | *  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 1  | | 2  | | 3  | |    | | AC |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ |    | +----+
                                  | =  |
             +----+ +----+ +----+ |    | +----+
             |    | |    | |    | |    | |    |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

ボタンを下の行から上に 1 つずつ移動すると、テキストは表示されますが、下の行には表示されません。

                    +----+ +----+        +----+
                    | .  | | +- |        | C  |
                    |    | |    |        |    |
                    +----+ +----+        +----+

             +----+ +----+ +----+ +----+ +----+
             | 7  | | 8  | | 9  | | +  | | -  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 4  | | 5  | | 6  | | /  | | *  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 1  | | 2  | | 3  | |    | | AC |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ |    | +----+
                                  | =  |
             +----+               |    |
             |    |               |    |
             |    |               |    |
             +----+               +----+

次に、最後のボタンを一番上に移動すると、新しい一番下の行にテキストが表示されなくなります。

             +----+ +----+ +----+        +----+
             | 0  | | .  | | +- |        | C  |
             |    | |    | |    |        |    |
             +----+ +----+ +----+        +----+

             +----+ +----+ +----+ +----+ +----+
             | 7  | | 8  | | 9  | | +  | | -  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 4  | | 5  | | 6  | | /  | | *  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 1  | | 2  | | 3  | |    | | AC |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ |    | +----+
                                  |    |
                                  |    |
                                  |    |
                                  |    |
                                  +----+

次に、等号ボタンを上に移動すると、新しい一番下の行にテキストが表示されません。

                                  |    |
                                  |    |
             +----+ +----+ +----+ | =  | +----+
             | 0  | | .  | | +- | |    | | C  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 7  | | 8  | | 9  | | +  | | -  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+ +----+ +----+
             | 4  | | 5  | | 6  | | /  | | *  |
             |    | |    | |    | |    | |    |
             +----+ +----+ +----+ +----+ +----+

             +----+ +----+ +----+        +----+
             |    | |    | |    |        |    |
             |    | |    | |    |        |    |
             +----+ +----+ +----+        +----+

これは本当にイライラします!新しいアプリで再び開始しましたが、常に表示されない最下位の行が表示されます。3.5 インチ ビューに切り替えても問題は解決しません。ボタンの間隔を広げてみたり、すべてのテキスト パラメータを変更したり、ビューを変更してサブビューの自動サイズ変更を無効にしたり、モードをスケールからフィットに変更したりしましたが、これはまだ発生しています。この問題を説明している投稿が他に見つかりませんが、簡単に再現できるので奇妙に思えます。助けてください。

4

2 に答える 2

5

iOS 6 の新しい autolayout-option は、非常に特殊な場合にのみ使用することをお勧めします。私はこのオプションを非常に集中的にテストし、多くのバグを見つけました。

  • コンソールに Apple のバグを示すメッセージが表示される
  • UIが劇的に遅くなります
  • レイアウトの制約が突然消える間
  • 文書化されていないエラー メッセージでアプリがクラッシュすることがある

現在、autolayout の使用は非常にイライラします。autolayout を使用する代わりに、私は使用します

- (void)viewDidLayoutSubviews {}

UI をプログラムで調整できます。これは (開発時および実行時に) はるかに簡単で高速です。

于 2013-01-13T15:51:56.513 に答える
1

「Interface Builder Document」の下にある「Use Autolayout」トグルのクリックを外す必要があります。これと同じ問題があり、無効にすると、ボタンにテキストが正しく表示されます。

ユーティリティを表示 / ファイル インスペクター / インターフェイス ビルダー / Autolayout を使用

私の知る限り、これは iOS 6.1 の新しい「機能」です。

于 2013-02-22T23:57:26.483 に答える