나는 다른 텍스트를 표시하는 테이블을 가지고 있으므로 적절하게 셀 높이를 조정해야합니다. 위임 방법을 사용합니다.uitableviewcell에 대한 정확한 텍스트 높이 찾기
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
// I ask for my content string and then I want to adjust the cell accordingly:
CGSize maximumSize = CGSizeMake(defaultCell.textLabel.frame.size.width, CGFLOAT_MAX);
GSize neededSize = [contentString sizeWithFont:defaultCell.textLabel.font constrainedToSize:maximumSize lineBreakMode:defaultCell.textLabel.lineBreakMode];
CGFloat cellHeight = neededSize.height +15;
return cellHeight;
기본 셀은 스토리 보드의 프로토 타입 셀입니다. viewDidAppear 대리자 메서드에서 초기화하여 프로토 타입 uitableviewcell에 쉽게 액세스 할 수 있습니다.이 방법으로 내 스토리 보드에서 글꼴과 같은 것을 변경해야합니다.
문제점 sizeWithFont : constrainedToSize : lineBreakMode 함수가 정확한 답을주지 못한다는 것이 문제입니다. 다음 줄에 아주 짧은 단어가 몇 개있는 경우 한 줄의 결과가 너무 낮을 것입니다.
anybode는 그 이유와이를 피하는 방법에 대한 아이디어가 있습니까?
그럼 어떻게 처리할까요? 셀 높이에 대한 델리게이트 메서드가 호출 될 때 다른 셀이 아직 초기화되지 않았기 때문에 기본 셀을 사용하도록 전환했습니다. – DarkCell
'tableView : willDisplayCell : forRowAtIndexPath'를 오버라이드하고 cell.textLabel 프레임을 인쇄하면 iPhone 화면 (기본 셀)에서 프레임이'(10 0; 300 44)'이고, iPad 화면에서는 왼쪽과 오른쪽 여백은 각각 10 픽셀로 유지됩니다. 그래서'defaultCell.textLabel.frame.size.width'에서 -20px를 하드 코딩 하겠지만 20px가 실제로 무엇을 나타내고 무엇이 제거되는지를 나타내는 주석을 남겨 두십시오. – user352891