gpt4 book ai didi

objective-c - 调整 UITableView 的大小

转载 作者:行者123 更新时间:2023-11-29 04:31:40 25 4
gpt4 key购买 nike

我正在做这个项目。目前我面临一个问题,我在一个 ViewController 中有 3 个 UITableView。它看起来像这样:

enter image description here

现在,第一个 TableView(顶部的一个)只有一行,大小为 55 像素,并且不必调整大小。接下来,第二个是 TableView,同样只有一行,但是这一行必须根据其内容调整大小。现在这个 TableView 显示这一行:

enter image description here

该行必须根据其中文本的长度来调整大小。我计算尺寸的方法是:

if(tableView == self.usersPostOnTheWallTableView) {
NSDictionary *propertyItems = [self.repliesItems objectAtIndex:indexPath.row];

NSString *text = [self.postItems objectForKey:@"text"];

NSLog(@"%@", text);

CGSize constraintSize = CGSizeMake(280, MAXFLOAT);

CGSize sizeText = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];

self.height = MAX(sizeText.height, 44.0f);

self.photosArray = [propertyItems objectForKey:@"attach_photos"];
self.videosArray = [propertyItems objectForKey:@"attach_videos"];

if((self.photosArray.count == 0) && (self.videosArray.count == 0)) {

height += (CELL_CONTENT_MARGIN * 2);

} else if ((self.videosArray.count > 0) && (self.photosArray.count == 0)) {

height += 90 + (CELL_CONTENT_MARGIN * 2);

} else if((self.photosArray.count > 0) && (self.videosArray.count == 0)) {

height += 85 + (CELL_CONTENT_MARGIN * 2);
}

}

现在,如果文本非常小,它会很好地适合行,并且行会调整大小。比如这样:

enter image description here

但是,当文本变大后,会发生以下情况:

enter image description here

enter image description here

显然我不需要在那里滚动,我会禁用它。但这里的问题是,它需要文本的大小,并调整标签的大小,您可以看到它从标签的顶部和底部留出了多少空间。但它并没有把实际的文本放在那里。另一件事是,它没有自行调整 TableView 的大小,当我尝试调整它的大小时,我发现底部表格与中间表格重叠。

任何人都可以推荐任何解决方案,或者其他实现方式吗?

提前致谢!

最佳答案

您可以使用 tableviewDelegate 方法根据您的文本设置单元格高度,例如:

每个单元格都会调用此方法来决定单元格的高度应为多少

  - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *strDetails = [yourTextArray objectAtIndex:indexPath.row];
//if(indexPath.row == 1)
//{
CGSize stringSize = [strDetails sizeWithFont:[UIFont fontWithName:@"Marker Felt" size:13] constrainedToSize:CGSizeMake(320, 9999) lineBreakMode:UILineBreakModeWordWrap]; // Provide text as well as font name in which your text will be displayed and constrainedToSize which defines width and height it should be maximum
return stringSize.height+65; //Here 65 can be any value depending on Calculation ImageView height + uppermost space + bottom space added
//}
//else
//{
// return 80 // anything u wishes
//}
}

关于objective-c - 调整 UITableView 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11665859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com