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

前端之家收集整理的这篇文章主要介绍了ios – 为什么systemLayoutSizeFittingSize为UITableViewCell返回(0,0)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下是代码
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));
    }];

在视图控制器中,它使用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.请帮忙,我不知道我在这里做错什么.

解决方法

问题是您的约束不能决定单元格的高度.您尚未将图像视图的顶部或图像视图的底部固定到其超视图(contentView).因此,当您调用systemLayoutSizeFittingSize时,单元格没有任何内部的内容,以防止它一直崩溃.

换句话说:systemLayoutSizeFittingSize的作用是将某些内部约束视为一个最小(或最大)大小的struts.你没有支柱

原文链接:https://www.f2er.com/iOS/335018.html

猜你在找的iOS相关文章