가변 UITableCellView 하위 뷰가있는 가변
-
02-07-2019 - |
문제
다양한 행 높이가있는 UitableView를 만들고 싶습니다. UitableViewCells 내부에 Uilabel을 만들어이를 달성하려고합니다.
지금까지 내 코드는 다음과 같습니다.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyIdentifier = @"EntryCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
}
UILabel *textView = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 300, 40)];
textView.numberOfLines = 0;
textView.text = [entries objectAtIndex:[indexPath row]];
[cell.contentView addSubview:textView];
[textView release];
return cell;
}
이것은 셀당 두 줄의 텍스트를 제공합니다. 그러나 각 "항목"마다 다른 수의 줄이 있으며, 우체 뷰 셀이 글꼴 크기를 변경하지 않고 필요에 따라 텍스트를 자동으로 조정하기를 원합니다.
[textView sizeToFit]
및/또는 [cell sizeToFit]
작동하지 않는 것 같습니다.
다음은 uitable 뷰를보고 싶은 방법입니다.
----------------
Lorem ipsum
----------------
Lorem ipsum
Lorem ipsum
----------------
Lorem ipsum
Lorem ipsum
Lorem ipsum
----------------
Lorem ipsum
----------------
Lorem ipsum
Lorem ipsum
----------------
누구 든지이 작업을 제대로 수행하는 방법을 아는 사람이 있습니까?
감사.
해결책
UitableViewDelegate는 선택적인 메소드 HeightforseFortIndexPath를 정의하여 시작할 수 있습니다. 그런 다음 SizewithFont를 사용해야합니다.
정확한 문제에 대한 논의가 있습니다.
http://www.v2ex.com/2008/09/18/how-to-make-uitableviewcell-have-variable-height/
텍스트 크기도 논의되었습니다 이 스레드
다른 팁
이 코드는 저를 위해 작동합니다. 그것이 완벽한 지 모르지만 작동합니다.
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.row<[notesModel numberOfNotes]){
NSString *cellText = [@"Your text..."];
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:12.0];
CGSize constraintSize = CGSizeMake([UIScreen mainScreen].bounds.size.width - 100, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
return labelSize.height + 20;
}
else {
return 20;
}
}
TextView.numberOfLines = 2? 숫자 노선은 최대 선의 최대 nuber를 설정하므로 2가 당신을 위해 빚지고 있습니까?
제휴하지 않습니다 StackOverflow