사용자 정의 UITableCell 하위 클래스에 이상한 문제가 있습니다.이 사용자 정의 셀에는 여러 줄의 UILable 쌍이 있으며 다양한 텍스트 (최대 2000 자)를 포함 할 수 있습니다. 사용자 정의 테이블 셀 계정에 장치 방향을 가지고, 나는 아래의 코드를 사용하여 프레임의 높이를 계산하고 레이아웃 방법이 있습니다사용자 정의 tableCell의 UILabel 텍스트 오버런
self.presentationTextLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleRightMargin;
I을 :
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 설정 한 UITableViewController에서 같은 계산을 사용하여 행 높이를 설정하십시오.
모든 것이 완벽하게 작동하며 라벨의 너비가 올바른 높이로 크기가 정해지고 기기 회전시 셀이 자동으로 자릅니다. 단, 기기가 가로로 회전하면 라벨의 텍스트가 오른쪽의 라벨의 프레임 밖으로 가끔 확대됩니다 , tableView 가장자리를 지 웁니다. 내가보기에서 셀을 스크롤하면 다시 정상으로 돌아옵니다. 콘솔에 셀의 너비를 로깅하고 있지만 텍스트가 너비보다 훨씬 길어집니다.
어떤 아이디어가 도움이 되었습니까? 장치가 가로로 회전 할 때
감사
아마도 이것은 테이블에있는'UITableViewCell' 인스턴스의 캐싱과 관련이 있습니다. 더 나은 해결책이있을 수 있습니다. 그러나 당신은'UITableView' 장치 회전에'reloadData' 메시지를 보낼 수 있습니까? – FluffulousChimp