私はプロジェクトに取り組んでいます。現在、問題が発生しています。1つのViewControllerに3つのUITableViewがあります。これは次のようになります。
さて、最初のTableView(一番上のもの)には、55ピクセルのサイズの行が1つだけあり、サイズを変更する必要はありません。次に、2番目はTableViewで、これも1行ですが、この行のサイズを変更する必要があるのは、その内容によって異なります。現在、この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);
}
}
ここで、テキストが非常に小さい場合は、行にうまく適合し、行のサイズが変更されます。このような:
しかし、テキストが大きくなった後、これは何が起こっているのか:
明らかに、そこにスクロールする必要はなく、無効にします。ただし、ここで重要なのは、テキストのサイズを取り、ラベルのサイズを変更することです。ラベルの上部と下部からいくつのスペースを作成できるかを確認できます。しかし、実際のテキストはそこに配置されません。もう1つは、TableView自体のサイズを変更しなかったことです。サイズを変更しようとすると、下のテーブルと中央のテーブルが重なっています。
誰かがこれの解決策、またはおそらく別の実装方法を推奨できますか?
前もって感謝します!