私はUITextView
を使ってデータを表示しています。その内容に応じてUITextView
の高さを計算する必要があります。私はcontentSize.height
を試しましたが、それは私のためには機能しません。 誰にもこれに対する解決策がありますか? ここに私のコードはAutoLayoutです。あなたはiOS 9の内容に応じてUITextViewの高さを取得する方法
double textViewHeight = yourtTextView .frame.size.height;
私はUITextView
を使ってデータを表示しています。その内容に応じてUITextView
の高さを計算する必要があります。私はcontentSize.height
を試しましたが、それは私のためには機能しません。 誰にもこれに対する解決策がありますか? ここに私のコードはAutoLayoutです。あなたはiOS 9の内容に応じてUITextViewの高さを取得する方法
double textViewHeight = yourtTextView .frame.size.height;
まずサイズと内容にテキストビューを高さ制約を設定していますテキストの高さを調べるには、次のコードを使用してください:
CGSize maximumTextViewSize = CGSizeMake(textView.frame.size.width, CGFLOAT_MAX);
NSStringDrawingOptions options = NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin;
NSDictionary *attr = @{NSFontAttributeName: [your font and font size]};
CGRect textViewBounds = [theText boundingRectWithSize:maximumTextViewSize
options:options
attributes:attr
context:nil];
CGFloat height = ceilf(textViewBounds.size.height);
あなたは、高さを計算した後
こともできますし、ビューの高さを取得後
[yourtTextView sizetofit];
:私は口
CGFloat height= _myTextView.contentSize.height;
_heightConstraint.constant = height;
ちょうど
[self layoutIfNeeded]
を追加し、あなたは大丈夫でなければなりません。
もしそうでなければ、私に戻ってきてください。
textview.scrollEnabled = false
これが行います:テキストビューのスクロールはスクロールのチェックを外すことにより、ストーリーボードでは、これを追加することで有効またはコードであること 変更をenabeldされたときのTextViewがその内容を認識していない
返信ありがとう、私はすでにこれをしました。まだ動かない。 – user3306145
func heightForView(text:String, font:UIFont, width:CGFloat, xpos:CGFloat) -> CGFloat {
let label:UILabel = UILabel(frame: CGRectMake(xpos, 0, width, CGFloat.max))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.ByWordWrapping
label.font = font
label.text = text
label.sizeToFit()
return label.frame.height
}
textViewはその内容を認識し、その内容に基づいて高さが増減します。
正しい高さの値を取得していますか?あなたは制約を変更するには、あなたは[self layoutIfNeeded]をする必要があります –
はい私は既にそれを試しましたlayoutIfNeeded – user3306145