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

Setting content mode for something besides UIImageView in iOS

This answer shows the various effects of setting the content mode 一个 UIImageView.

由于 UIView 在 Interface Builder 中也有内容模式设置,我想知道为什么设置它不会影响其中的任何子视图。

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

但是如果我将 UIView 的模式设置为顶部,标签就会停留在同一个位置。

内容模式是否仅适用于 UIImageViews?如果它对 UIViews 不起作用,为什么它还在那里?

contentMode 仅修改视图的内容,而不修改其子视图的内容。因此,如果您有一个自定义视图并在其 drawRect 中绘制了一些内容,那么您会发现每次更改视图的 contentMode 时它都会发生变化。

现在在 UIImageView 的情况下,图像实际上是视图的内容(在其 drawRect 中内部绘制),因此当您更改 contentMode 你的 UIImageView。