我在自定義UITableCell子類中出現了一個奇怪的問題。此自定義單元有一對UILables,它們是多行的,可以包含不同數量的文本(最多2000個字符)。自定義的TableCell有我在哪裏使用下面的代碼計算其幀的高度佈局方法,以設備的方向考慮:自定義表中的UILabel文本溢出細節
if (isPortrait) {
presentationTextLabelSize = [presentationTextStr sizeWithFont:[UIFont systemFontOfSize:12.0f] constrainedToSize:CGSizeMake(portraitDescriptionWidth, 2000.0f) lineBreakMode:UILineBreakModeWordWrap];
presentationTextLabelRect = CGRectMake(60.0f, 25.0f, portraitDescriptionWidth, presentationTextLabelSize.height);
} else {
presentationTextLabelSize = [presentationTextStr sizeWithFont:[UIFont systemFontOfSize:12.0f] constrainedToSize:CGSizeMake(landscapeDescriptionWidth, 2000.0f) lineBreakMode:UILineBreakModeWordWrap];
presentationTextLabelRect = CGRectMake(60.0f, 25.0f, landscapeDescriptionWidth, presentationTextLabelSize.height);
}
self.presentationTextLabel.frame = presentationTextLabelRect;
我有標籤的autoResizeMask設置如下:
self.presentationTextLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleRightMargin;
我在UITableViewController中使用相同的計算來設置行高度。
一切正常,標籤的大小適合其寬度的正確高度,單元格會自動調整設備旋轉的大小,但當設備旋轉到橫向時,標籤的文本有時會從標籤的框架向右延伸,清除tableView的邊緣。如果我將該單元格從視圖中移出並再次返回,它將恢復正常。我將單元格的寬度記錄到控制檯,並且它是正確的,但是文本延伸到遠遠超過該寬度。
任何想法是什麼關於?
由於
可能這與緩存表中的UITableViewCell實例有關。可能有更好的解決方案;但你可以在設備輪換時向UITableView發送'reloadData'消息嗎? – FluffulousChimp