コンテンツに応じてセルの高さが動的なtableViewを作成しています。したがって、セルのコンテンツが多い場合、セルの上下のマージンが多くなり、特定のセルのコンテンツが少ない場合、上下のマージンが少なすぎますが、コンテンツに関係なく、すべての人に同じマージンが必要です。
余白が(コンテンツに基づいて)ランダムな最初のセルについて話しているのですが、その上下の余白を任意の数のコンテンツと同じにしたいのです。カスタムセルを使用していません。
どんな助けでも本当にありがたいです、私はこれに多くの時間を割きました. 私のコードが必要な場合は、ここに貼り付けることができます..
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 0) {
NSString *session_name = [self.parentDetailArray valueForKey:@"session_name"];
NSString *venue = [session_name stringByAppendingString:[self.parentDetailArray valueForKey:@"venue"]];
NSString *tmp_name_venue = [session_time stringByAppendingString:venue];
if(![self.parentDetailArray valueForKey:@"speakers"] || ![[self.parentDetailArray valueForKey:@"speakers"] isEqual:@""])
{
NSString *speaker_label = @"Speakers: ";
NSString *speakers = [[NSString alloc]init];
speakers = [self.parentDetailArray valueForKey:@"speakers"];
speakers = [speaker_label stringByAppendingString:speakers];
tmp_name_venue = [speakers stringByAppendingString:tmp_name_venue];
}
NSLog(@"%@", tmp_name_venue);
CGSize detailTextViewSize = [tmp_name_venue sizeWithFont:[UIFont fontWithName:@"Roboto-Light" size:18]constrainedToSize:CGSizeMake(296, FLT_MAX)lineBreakMode:UILineBreakModeTailTruncation];
if(detailTextViewSize.height <37)
{
return 40;
}
if(detailTextViewSize.height >tmp_name_venue.length)
{
return detailTextViewSize.height;
}
else
{
detailTextViewSize.height = [tmp_name_venue length];//Here i'm just attempting to get the margin right.
return detailTextViewSize.height;
}
}