2016-10-19 11 views
0

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のためのフレームのサイズ

enter image description here

には有効ではありません。

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には、トップラインを切断します。

enter image description here

のTextViewためのスクロールが無効になっている場合(所望の設定)次に、このheaderViewための高さが必要なサイズよりも大きくなるように算出されます。テキストの長さはこの効果を増やすようです。

enter image description here

私はまた、TextViewには様々な段落と行間隔オプションを使用して属性付きテキストを割り当てられていることを追加する必要があります。

何が起こっているのかについてのご意見は大変ありがたいです。

答えて

0

私は私の問題を解決しました。私はまだ上記の問題が起きているのかどうかはわかりませんが、私がストーリーボードでヘッダービューを適用したとき(実行時にnibファイルからロードしてtableView.tableHeaderViewに割り当てる)、私のautolayoutの問題はすべて消えました。

なぜそれが誤動作していて、xibファイルを使ってテーブルヘッダービューを取得する方法があるのか​​を知りたい場合

関連する問題