在iOS中设置除了UIImageView之外的内容模式

这个答案显示了设置UIImageView的内容模式的各种效果。

由于UIView在界面生成器中也有内容模式设置,所以我想知道为什么设置它不会影响其中的任何子视图。

这是我尝试的一个例子。 蓝色视图是UIView ,黄色视图是UILabel

在这里输入图像说明

但是,如果我将UIView的模式设置为Top,则标签只保留在相同的位置。

在这里输入图像说明

内容模式仅适用于UIImageViews吗? 如果它不适用于UIViews ,为什么它甚至在那里?

contentMode仅修改视图的内容而不修改子视图。 所以如果你有一个自定义的视图,并且在drawRect绘制了一些东西,那么每当你改变视图的contentMode的时候,你就会看到它被改变了。

现在在UIImageView情况下,图像实际上是视图的内容(内部绘制在它的drawRect ),所以当你改变你的UIImageView的contentMode时,你可以看到图像的变化。