Ios 使用AutoLayout在UITableView中设置框架不适用于UIImage

Ios 使用AutoLayout在UITableView中设置框架不适用于UIImage,ios,objective-c,uitableview,uiimage,autolayout,Ios,Objective C,Uitableview,Uiimage,Autolayout,我有一个自定义的UITableViewCell,如下图所示: 这些图像有不同的高度和宽度,我需要保持它们的纵横比,并在我的tableview中显示它们。因此,我将控制器配置为以下代码: - (void)viewDidLoad { ... UINib *nibResponderImage = [UINib nibWithNibName:@"ResponderImageCell" bundle:nil]; [self.tableView registerNib:nib

我有一个自定义的
UITableViewCell
,如下图所示:

这些图像有不同的高度和宽度,我需要保持它们的纵横比,并在我的tableview中显示它们。因此,我将控制器配置为以下代码:

 - (void)viewDidLoad
{ 
    ...

    UINib *nibResponderImage = [UINib nibWithNibName:@"ResponderImageCell" bundle:nil];
    [self.tableView registerNib:nibResponderImage forCellReuseIdentifier:@"ResponderImage"];

    self.tableView.rowHeight = UITableViewAutomaticDimension;
    self.tableView.estimatedRowHeight = 80.0;

    ...
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    ...

    MessageLTableViewCell *cell = (MessageLTableViewCell *)[self.tableView dequeueReusableCellWithIdentifier:@"ResponderImage" forIndexPath:indexPath];

    [cell.mediaThumb setFrame:CGRectMake(50,50,100,100)];
    [cell.mediaThumb layoutIfNeeded];
    [cell layoutIfNeeded];

    cell.mediaThumb.image = [UIImage imageNamed:@"sample_image"];

    [cell.mediaThumb setFrame:CGRectMake(50,50,100,100)];
    [cell.mediaThumb layoutIfNeeded];
    [cell layoutIfNeeded];

    ...
}
示例图像的大小很大。此外,我还设置了恒定的帧大小,以便于调试

问题是没有设置新的帧。因此,结果将是下图:


如何解决此问题?

在调整单元格大小后,尝试调用[cell setNeedsUpdateConstraints]imageview@Mr.T不幸的是,这不起作用。yiu是否对高度进行了限制?@T先生,正如您在第一张图片中看到的,没有。正如@dan所说,您必须通过编程或在nib中为高度/宽度添加限制,否则,您将得到视图的
intrinsicContentSize
,即此处的图像大小。请在调整图像大小后尝试调用[cell setNeedsUpdateConstraints]imageview@Mr.T不幸的是,这不起作用。姚先生对身高有限制吗?@T先生,正如你在第一张照片中看到的,没有,必须以编程方式或在nib中为高度/宽度添加约束,否则最终将得到视图的
intrinsicContentSize
,即此处的图像大小