在 iOS 中为 UIImageView 以外的东西设置内容模式

Posted

技术标签:

【中文标题】在 iOS 中为 UIImageView 以外的东西设置内容模式【英文标题】:Setting content mode for something besides UIImageView in iOS 【发布时间】:2015-08-22 03:56:26 【问题描述】:

This answer 显示了设置UIImageView 的content mode 的各种效果。

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

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

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

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

【问题讨论】:

这里已经有问答了:[***.com/questions/12827710/…[1]:***.com/questions/12827710/… @anhtu,谢谢,我错过了。 【参考方案1】:

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

现在在UIImageView 的情况下,图像实际上是视图的内容(在其drawRect 内部绘制),因此当您更改UIImageView 的contentMode 时,您可以看到图像发生变化。

【讨论】:

以上是关于在 iOS 中为 UIImageView 以外的东西设置内容模式的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中使用 UIImageview 添加 UIScrollview 的页面控件

如何在 UIView 中为 UIImageView 添加 tapGesture

如何在 UITableView 的单元格中为 UIImageView 获取 touchesMoved?

在一个 ViewController 中为 UIImageView 和 UIView 添加手势

如何在 iOS 中为透明的 png 图像着色?

无法在 UITableViewCell 中为 UIImageView 设置图像大小