Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 调整UITableView的大小_Objective C_Ios_Uitableview_Autoresize - Fatal编程技术网

Objective c 调整UITableView的大小

Objective c 调整UITableView的大小,objective-c,ios,uitableview,autoresize,Objective C,Ios,Uitableview,Autoresize,我正在做这个项目。目前我面临一个问题,一个ViewController中有3个UITableView。它看起来像这样: 现在,第一个TableView(最上面的一个)只有一行,大小为55像素,它没有;不必调整大小。接下来,第二个是TableView,同样只有一行,但是这一行的大小取决于它的内容。现在,此表视图显示此行: 该行必须根据文本的长度调整大小。我计算尺寸的方法是: if(tableView == self.usersPostOnTheWallTableView) { NSDi

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

现在,第一个TableView(最上面的一个)只有一行,大小为55像素,它没有;不必调整大小。接下来,第二个是TableView,同样只有一行,但是这一行的大小取决于它的内容。现在,此表视图显示此行:

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

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);
    }

}
现在,如果文本很小,它会很好地适合该行,并且该行会调整大小。例如:

但是,在文本变得更大之后,会发生这样的情况:

显然,我不需要在那里滚动,我会禁用它。但这里的问题是,它需要文本的大小,并调整标签的大小,你可以看到它从标签的顶部和底部产生了多少空间。但它没有把实际的文本放在那里。另一件事是,它没有调整桌面视图的大小,当我试图调整它的大小时,我得到了中间桌子与底部桌子的重叠

有人能推荐这方面的任何解决方案,或者其他实施方式吗?


提前谢谢

U可以使用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
   //}
 }

为什么在第一个和第二个视图中使用UITableView?第一个按钮看起来像一个表格行,第二个按钮只是一个文本视图,那么为什么你要把你的生活复杂化呢?:-)在第二行中,我需要显示一行,因为会有图像和视频。这些视频和图像仍然不能使它成为一个表。很抱歉,我离开了主题,但我无法专注于技术细节,因为设计似乎太离题了。我已经定制了手机,可以在那里显示图像和视频,我已经在使用它了。虽然我删除了第一个tableview,只制作了一个按钮,但我需要在第二个tableview中显示单元格。设计选择还使可调整大小的视图的使用更加困难,因为您需要将UITableView和UITableViewCell的高度都设置为文本的高度。