nibファイルを介して割り当てられたtableHeaderViewを持つtableViewがあります。このtableHeaderViewには、sizeThatFits
を使用して高さの制約が設定されたサイズのTextView(オレンジ色の背景)が含まれています。UITextViewを持つTableHeaderViewは、UITextView.isScrollEnabled = falseのときにUITableViewControllerによって正しくサイズ変更されません。
let textViewSize = titleView.sizeThatFits(CGSize(width: titleView.frame.size.width, height: CGFloat(MAXFLOAT)))
textViewHeightConstraint.constant = textViewSize.height
このヘッダービューの制約は、高さを適切に駆動するように設定されています。 tableViewはUITextViewにスクロールしたとき、私はheaderView.systemLayoutSizeFitting
から非常に奇妙な結果を取得していますtableHeaderViewのためのフレームのサイズ
には有効ではありません。
if let headerView = tableView.tableHeaderView {
let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
var frame = headerView.frame
frame.size.height = height
if headerView.frame.height != height {
headerView.frame = frame
tableView.tableHeaderView = headerView
headerView.setNeedsLayout()
headerView.layoutIfNeeded()
}}
のTextViewのスクロールが有効な場合tableHeaderViewが期待どおりにスケールが、TextViewには、トップラインを切断します。
のTextViewためのスクロールが無効になっている場合(所望の設定)次に、このheaderViewための高さが必要なサイズよりも大きくなるように算出されます。テキストの長さはこの効果を増やすようです。
私はまた、TextViewには様々な段落と行間隔オプションを使用して属性付きテキストを割り当てられていることを追加する必要があります。
何が起こっているのかについてのご意見は大変ありがたいです。