簡體   English   中英

自定義tableCell中的UILabel文本溢出

[英]UILabel text overrun in custom tableCell

我在自定義UITableCell子類中遇到一個奇怪的問題。此自定義單元格有一對UILable,它們是多行的,可以包含不同數量的文本(最多2000個字符)。 自定義tableCell有一個布局方法,在該方法中,我考慮以下設備方向,使用以下代碼計算其框架的高度:

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的邊緣。 如果我將單元格滾動到視線之外並再次返回,則它將恢復正常。 我正在將單元格的寬度記錄到控制台,這是正確的,但是文本遠遠超出了該寬度。

有什么想法嗎?

謝謝

問題是,將設備旋轉到橫向時,不會重新加載tableView 因此,更新文本時會出現不匹配的情況。 使用[tableView reloadData]; 在找到設備的地方已更改為橫向模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM