gpt4 book ai didi

iphone - 无论内容如何,​​如何使顶部和底部边距完全相同。?

转载 作者:行者123 更新时间:2023-11-29 13:05:07 25 4
gpt4 key购买 nike

我正在制作一个 tableView,其中单元格高度根据内容动态变化。因此,当单元格的内容较多时,单元格的顶部和底部边距会更多,如果任何特定单元格的内容较少,则顶部和底部边距会太少,但我希望每个人的边距都相同,无论内容如何。

enter image description here enter image description here enter image description here enter image description here

我说的是第一个单元格,其中边距只是随机的(基于内容),我希望顶部和底部边距与任意数量的内容相同。我没有使用自定义单元格。

任何帮助将不胜感激,我已经为此付出了很多时间。如果你想要我的代码,我可以把它传到这里..

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


}

最佳答案

如果我最后的评论是正确的,当你的问题有答案时。如果单元格调整大小,没有最简单的方法来定位单元格内容。所以我发现这个解决方案适合我。我以简单的方式创建单元格,没有任何边距等,创建后没问题 - 我有所有尺寸并且可以操纵它。

首先你需要创建单元格并计算或设置你想要的边距

....
// place there cells init (not inside heightForRowAtIndexPath)
// someway you have firstCell object representing first cell in table
CGFloat marginHeight = 10;
[self hierarchyItemsReposition:firstCell withTopShift:marginHeight];
[firstCell setFrame:CGRectMake(firstCell.frame.origin.x, firstCell.frame.origin.y, firstCell.frame.size.width, firstCell.frame.size.height+marginHeight*2)];
...

- (void)hierarchyItemsReposition:(UIView *)cell withTopShift:(CGFloat)shift
{
for (UIView *subview in cell.subviews)
{
[subview setFrame:CGRectMake(subview.frame.origin.x, subview.frame.origin.y+shift, subview.frame.size.width, subview.frame.size.height)];
[self hierarchyItemsReposition:subview withTopShift:shift];
}
}

我只是遍历此单元格中的所有 subview 并将其移动到需要的位置。

我将起点放在 heightForRowAtIndexPath 之外,因为在这种情况下,所有其他单元格帧都以正确的方式计算,如果您以后想使用它,它会正常工作。

关于iphone - 无论内容如何,​​如何使顶部和底部边距完全相同。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18847680/

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