2016-10-19 39 views
0

我有一個tableView,它有一個通過nib文件分配的tableHeaderView。此tableHeaderView包含使用sizeThatFits的高度約束來確定大小的TextView(橙色背景)。當UITextView.isScrollEnabled = false時,UITextView的UITextView的表格大小不正確

let textViewSize = titleView.sizeThatFits(CGSize(width: titleView.frame.size.width, height: CGFloat(MAXFLOAT))) 
    textViewHeightConstraint.constant = textViewSize.height 

此標題視圖的約束條件設置爲正確驅動它的高度。

enter image description here

當的tableView大小的框架爲tableHeaderView我從headerView.systemLayoutSizeFitting在UITextView的滾動時變得非常奇怪的結果是沒有啓用。

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

我解決了我的問題。我仍然不確定爲什麼會出現上述問題,但是當我在故事板中應用標題視圖時(vs通過nib文件加載並在運行時將其分配給tableView.tableHeaderView),我的所有自動佈局問題都消失了。

還想知道爲什麼它是錯誤的行爲,如果有辦法讓我的表頭視圖通過xib文件工作