나는이 질문에 대한 많은 잠재적 대답을 이미 알고 있지만 지금까지는 사용하지 않은 sizeWithFont를 보았을 때까지 모든 대답의 99.995 %를 알고 있습니다.iOS - 동적으로 tableviewcell의 크기를 조절할 때의 문제
나는 여기서 다루고있는 tableviewcell 하나를 가지고 있지만 단순해야하지만 모든 것이 잘 풀리지 않습니다. 여기에 몇 가지 답변을 온라인으로 읽음으로써 작성된 코드가 있습니다. 이것은 셀 레이블입니다. 스토리 보드에 정의
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *myString = [self.locations[indexPath.row] locationDescription];
return [self heightForText:myString] + 44.0;
}
-(CGFloat)heightForText:(NSString *)text{
NSInteger MAX_HEIGHT = 10000;
UILabel *cellLabelView = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, MAX_HEIGHT)];
cellLabelView.text = text;
cellLabelView.font = [UIFont fontWithName:@"Helvetica Neue Light" size:18];
[cellLabelView sizeToFit];
return cellLabelView.frame.size.height;
}
높이가 44로 설정되어 있고 선은 라벨 자체 라벨이 그것을 할 필요가 얼마나 큰 결정할 수 있도록 0으로 설정됩니다.
문제 # 1 : 레이블에 설정된 텍스트가 단어 줄 바꿈이 아니더라도 (분명히) 나는 원하는 것이 아닌 여분의 패딩을 얻습니다. 실제로 단어 줄 바꿈이 있는지 여부를 계산하는 방법을 모르겠습니다. 단어 줄 바꿈이 없으면 (예 : 텍스트가 레이블보다 길면 44를 반환하고 싶습니다).
문제가 # 2 : 내 텍스트가 예를 들어 5 줄 상당의 텍스트가 너무 길면 MAXHEIGHT가 10,000 임에도 불구하고 문자열 끝 부분의 텍스트 일부가 잘릴 수 있습니다. 마치 단어 줄 바꿈을 멈추기로 결정한 것처럼. 이 시점에서 패딩을 늘리면 88이라고 말하면 모든 것을 볼 수 있습니다. (기묘한).
몇 가지 우아한 솔루션, 피드백, 도움을 찾으십시오. 감사!