問題タブ [nstextattachment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
159 参照

ios - デキューされたセル UITextView で attributedText を更新すると、アプリがフリーズします

今、大きな壁にぶち当たっています…

カスタム画像を含むカスタムUITableViewCellを使用しています。UITextViewNSTextAttachment

それぞれNSTextAttachment

NSTextAttachmentContainerプロトコルから。

ここでの目標は、さまざまなサイズの画像を表示し、境界を使用可能なスペースに合わせることです。

sizeThatFitsまた、キャッシュする前に、専用セルのステートメントを使用してセルの高さを計算する必要があります。

特定の一連のコンテンツをリストしようとした今日まで、すべてがうまくいきました。

古いセルをデキューして新しいセルを表示すると、アプリがスタック内の[_textView setAttributedString:myAttributedText];ステートメントでフリーズするだけです。[NSATSTypesetter beginLineWithGlyphAtIndex:]

私は、無駄に(実際には機能する)毎回セルを再作成することを避けるためにあらゆることを試みました。

これが私が見つけたものです:

  • セルの高さの値を「ハードコード」して返しても、問題は残ります。
  • 境界を変更NSTextAttachmentする (およびセルの高さを維持する) と、ロジックなしでバグが消えるようです...
  • セルの高さを変更してデキューが後で発生するようにすると、すべてが正常に機能するため、これは明らかにコンテンツの悪魔の組み合わせです。実際、関連する 2 つのセルには、1 つの画像のみを含むテキストが含まれています。
  • メソッドを見て- (void)prepareForReuse、状態をリセットしようとしましたがUITextView、これも無駄でした。
  • UITextViewセルがデキューされるたびに新しいものを再作成すると、問題が解決するようです。

何か案が?NSTextAttachmentContainerデキューシステムやプロトコルについて何か重要なことを知る必要がありますか?

よろしくお願いします。

編集: この問題を解決するために私が見つけた唯一のことは、それを行うことです:

ここでのsizeToFit声明は本当に重要です!