除外パスを含むTextViewをUITableViewCell
に持っていれば、指定した文字列のセルの高さをどのように計算できますか?除外パスを含むTextViewのセルの高さを計算する
7
A
答えて
17
私は他人に助けになると思われる解決策を見つけました。すでにUITextViewの一部としてインスタンス化されている新しいNSTextContainer、NSLayoutManager、およびNSTextStorageオブジェクトの作成を必要としないので、より効率的であると思われます。
は除外パスとNSAttributedStringを使用しているUITextViewのサイズを計算するためには、次の操作を行うことができます:// Assuming something like this...
UIBezierPath * exclusionPath = [UIBezierPath bezierPathWithRect:someRect];
self.textView.textContainer.exclusionPaths = @[exclusionPath];
NSAttributedString * attributedString = ...
self.textView.attributedString = attributedString;
...
// Use text container, layout manager, and text storage associated with the text view.
NSTextContainer * textContainer = self.textView.textContainer;
NSLayoutManager * layoutManager = textContainer.layoutManager;
NSTextStorage * textStorage = layoutManager.textStorage;
// Limit the width or height. In this case, limiting the width to 280.
textContainer.size = CGSizeMake(280.0, FLT_MAX);
[textStorage setAttributedString:attributedString];
// Because the layout manager performs layout lazily, on demand, you must force it to lay out the text, even though you don’t need the glyph range returned by this function.
[layoutManager glyphRangeForTextContainer:textContainer];
// Ask the layout manager for the height of the rectangle occupied by the laid-out text
CGFloat height = [layoutManager usedRectForTextContainer:textContainer].size.height;
3
は実際にあなたがtextContainer
とlayoutManager
でプレイする必要はありません。これは私のために働く。
UIBezierPath *exclusionPath = [UIBezierPath bezierPathWithRect:imageViewFrame];
UITextView *tempTextView = [[UITextView alloc] init];
[tempTextView setFont:font];
tempTextView.textContainer.exclusionPaths = @[exclusionPath];
[tempTextView.textStorage replaceCharactersInRange:NSMakeRange(0, [tempTextView.text length]) withString:text];
CGRect textViewFrame = [tempTextView frame];
textViewFrame.size.height = [tempTextView sizeThatFits:CGSizeMake(290, FLT_MAX)].height;
return textViewFrame.size.height;
関連する問題
- 1. "0"を含む数式内の計算セルを除外する方法?
- 2. コレクションビューを含むセルの高さを動的に変更する
- 3. iOSはtableViewセルのテキストの高さを計算します
- 4. %%の文字を含むセルの合計
- 5. 外部divの高さを計算する画像の高さを取得
- 6. textView Swiftの動的セルの高さ
- 7. 計算式を含むテキストボックス
- 8. 別の計算の結果を含むOracleの計算
- 9. カードを含むGridViewで高さが正しく計算されない
- 10. セル内のテーブルビューの高さに応じてテーブルビューのセルの高さを計算しますか?
- 11. Handsontable - コンマを含む値の計算
- 12. Dynamic UITableViewCell iOSでUIWebViewを含むセルの高さ
- 13. divの高さを計算する
- 14. 'font'を含むwebpackローダーの除外パスを設定する方法
- 15. Java Excel POI - 空のセル例外を含む行を削除する
- 16. 送信heightForRow:atIndexPathセル内での計算後の高さ値
- 17. 組合の確率を計算するための包含除外の原理
- 18. セル内のデータを含むセルのグリッド線の追加/削除
- 19. SQL Server:空の月を含む月間総売上高を計算
- 20. これらが計算と削除を含むときに、外側と内側のループをベクトル化する
- 21. collectionViewCellの高さを動的な高さで計算する
- 22. iOS埋め込みツイートを含むhtml文字列のWKWebviewの高さを正しく計算する
- 23. 中央値計算理論を含むグループ化された列を含む
- 24. ファイル名を含むセルの上の行を削除する
- 25. UIScrollViewの高さを計算します
- 26. マージされたセルを含むセルの範囲をループする
- 27. CSS計算による高さ計算()計算方法
- 28. クローズの計算(過去を含む2つのビューの合計)
- 29. 計算を含むメソッド - Rails 4
- 30. セルを再計算する
ほぼ完全に動作します。私は正しく動作するように、高さに+1を加えなければならなかった、理由を知らない:) –