gpt4 book ai didi

cocoa - UIImageView 不会随图像调整大小

转载 作者:行者123 更新时间:2023-12-03 17:49:53 24 4
gpt4 key购买 nike

这让我发疯。我有一个 UIImageView ,其约束为“width <= 34”。当我将图像设置为 nil 时,我希望 View 的宽度缩小到零,但事实并非如此。

我已经对所有内容进行了双重和三次检查...没有其他应该干扰的约束,等等。事实上,我有另一个表格 View 单元格,它可以完美地工作。

我错过了什么?

编辑:以下是此 View 的所有约束。

enter image description here enter image description here

最佳答案

没有内在内容大小的 View 的高度宽度不平等会导致布局不明确。(确切地说,对于返回 UIViewNoIntrinsicMetric 作为内在内容大小的高度和宽度的 View )

让我们理解这一点。在下图中,一切看起来都是正确的。

enter image description here

现在,当图像设置为 nil 时,自动布局会提醒我们有关歧义的情况。为什么?因为没有图像,返回的固有高度和宽度是 UIViewNoIntrinsicMetric,然后像“height <= 37”这样的不等式单独无法帮助自动布局引擎找到 View 的高度/宽度。

A UIIMageView with no content image, alerts about ambiguous layout

现在,当我们设置显式的内在内容大小(但不适用于运行时)时,歧义就得到了解决。

Same UIImageView when set with intrinsic size placeholder resolves ambiguity

因此,为了解决您的问题,我们需要返回 0,0 作为内在内容大小。您应该尝试子类化覆盖 -intrinsicContentSize 的 UIImageView。

@implementation ZeroedIntrinsicContentSizeImageView

- (CGSize)intrinsicContentSize {
if (self.image)
return [super intrinsicContentSize];
return CGSizeZero;
}

@end

关于cocoa - UIImageView 不会随图像调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30275276/

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