0

でできた「お会計テープ」付きの電卓アプリを持っていますUITextView。テープに約 50 ~ 100 行あると、テキスト ビューの更新が非常に遅くなります。新しいコンテンツ (50 ~ 100 行のテキスト) を設定するには、簡単に 100 ミリ秒以上かかります。問題は、UIKit がメイン スレッドで呼び出されることを要求するため、この遅延をバックグラウンドに移動できないことです。

私に何ができる?頭に浮かぶ唯一のことはUIView、タスクにより適したカスタム サブクラスを使用してテープを書き直すことですが、それは多くの作業であり、UITextViewこの問題を除けば問題なく動作するため、あまり熱心ではありません。

4

2 に答える 2

1

50 行しか扱っていないのに問題が発生していることに非常に驚いています。Instruments の「Time Profiler」でコードを実行し、問題が本当に の更新であり、それ以外のUITextViewものではないことを確認します。をあきらめる前に、ここで少し調査する必要があるかもしれませんUITextView

しかし、最初からやり直す必要があり (これはありそうにないと思います)、 を使用しないことにしたとしましょうUITextView。既存のコントロールを活用することをお勧めします。たとえば、UITableViewセル間に区切りがない場合や、最悪の場合UIScrollView、テープの各行が a であり、画面からスクロールされたラベルのスタイルのデキューUILabelを行う場合などです。UITableViewゼロから始めるよりも少し優れたオプションの束。

于 2012-11-28T14:19:49.090 に答える
0

それが実際にUITextView遅く、他のものではないと仮定すると、テキストビューのテキストを表示されている部分だけに変更することをお勧めします。外側にスクロールされたすべてのテキストをテキストビューに保持する必要はありません。もちろん、必要に応じて独自のスクロールを実装するか、削除された行に空白行を使用して、スクロール動作が損なわれないようにする必要があります。

于 2012-11-28T14:26:32.053 に答える