图像为零时具有固定尺寸 UIImageView 的自动布局?

Posted

技术标签:

【中文标题】图像为零时具有固定尺寸 UIImageView 的自动布局?【英文标题】:Autolayout with fixed-dimension UIImageView when image is nil? 【发布时间】:2015-02-10 06:57:17 【问题描述】:

我有一个带有一些标签的 UITableViewCell 和一个固定尺寸为 70x70 的 UIImageView。但是,当图像为零时,我似乎无法摆脱它——仍然出现一个黑色方块。我尝试更改内容拥抱优先级以及将宽度更改为<= 70,但空的图像视图永远不会完全消失。以下是 imageview 的当前约束:

【问题讨论】:

你能显示你自定义单元格的代码吗 我没有任何布局代码。所有的布局和约束都是在IB中完成的,然后我在代码中设置了文字和图片。 【参考方案1】:

我最终解决了这个问题,方法是将 UIImageView 的宽度约束拖到我的代码中,然后如果我在配置单元格时图像为 nil,则将其常量设置为 0。

【讨论】:

【参考方案2】:

当没有图像时,你可以用 UIImageView 做一件事,你可以简单地隐藏它。可以在单元格处实现索引处的行。

  -(UITableViewCell *)tableView:(UITableView *)tableView
                     cellForRowAtIndexPath:(NSIndexPath *)indexPath
    
        static NSString *CellIdentifier = @"SimpleTableCell";

            SimpleTableCell *cell = (SimpleTableCell *)[tableView
               dequeueReusableCellWithIdentifier:CellIdentifier];

            [cell.imageviewersetHidden:true];

    

或者您可以在 xib 中隐藏它,并且在绑定表格视图单元格时,如果图像可绑定,您可以使其可见。我想这可能会对你有所帮助。

【讨论】:

不幸的是,这只是使它不可见,但布局仍然占用空间。我想要的是标签在没有图像时展开。

以上是关于图像为零时具有固定尺寸 UIImageView 的自动布局?的主要内容,如果未能解决你的问题,请参考以下文章

具有异步 UIImageView 的自动布局 UITableViewCell 不起作用

具有自动布局和最大尺寸保持纵横比的 UIImageView

在 ios 中使用原始尺寸在 UIImageView 中设置图像

将图像调整为可变/固定尺寸?

如何将图像从固定尺寸动画到全屏?

UIImageView 和 UIImage 大小相等