gpt4 book ai didi

ios - 为什么 systemLayoutSizeFittingSize 为 UITableViewCell 返回 (0, 0)?

转载 作者:技术小花猫 更新时间:2023-10-29 10:20:12 26 4
gpt4 key购买 nike

这是代码片段

    self.xyzIcon = [UIImage mobileImageNamed:@"icon_xyz"];
self.xyzIconImageView = [UIImageView new];
[self.contentView addSubview:self.xyzIconImageView];

[self.xyzIconImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(weakSelf.contentView.mas_left);
make.width.equalTo(@(weakSelf.xyzIcon.size.width));
make.height.equalTo(@(weakSelf.xyzIcon.size.height));
}];

在 View Controller 中,使用tableview

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (!self.prototypeCell) {
self.prototypeCell = [UITableViewCell new];
}

[self.prototypeCell configure];

CGFloat heightCalculated = [self.prototypeCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height + 1.f;

NSLog(@"Height calculated %f", heightCalculated);

returns heightCalculated;
}

这总是返回 1.f。请帮忙,我不确定我在这里做错了什么。

最佳答案

问题是您的约束并不能决定单元格的高度。您没有将 ImageView 的顶部或 ImageView 的底部固定到其父 View (contentView)。因此,当您调用 systemLayoutSizeFittingSize 时,单元格内部没有任何东西可以防止它一直折叠到零。

换句话说:systemLayoutSizeFittingSize 的工作方式是将某物的内部约束视为赋予它最小(或最大)尺寸的支柱。你没有支柱。

关于ios - 为什么 systemLayoutSizeFittingSize 为 UITableViewCell 返回 (0, 0)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26598896/

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