Cocoa touch 界面生成器中布局的UIViews在执行过程中更改位置(UIViewContentMode)

Cocoa touch 界面生成器中布局的UIViews在执行过程中更改位置(UIViewContentMode),cocoa-touch,Cocoa Touch,我有一些图形,已经缩放和削减我的项目正确。 我选择在IB中构建UI并正确定位所有内容,在“大小和位置”下,我将其保留为“框架”(而不是布局) 在运行时,图形将根据我设置的UIViewContentMode进行移动和拉伸。 如果我完全在代码中完成这项工作,并且设置了一个框架而没有UIViewContentMode,那么Cocoa会尊重这一点,而不考虑图形。但是IB做的事情有点不同 我认为我的问题在于我无法准确理解不同UIViewContentMode的功能,也无法找到在运行时“关闭”图形操作的正确

我有一些图形,已经缩放和削减我的项目正确。 我选择在IB中构建UI并正确定位所有内容,在“大小和位置”下,我将其保留为“框架”(而不是布局)

在运行时,图形将根据我设置的UIViewContentMode进行移动和拉伸。 如果我完全在代码中完成这项工作,并且设置了一个框架而没有UIViewContentMode,那么Cocoa会尊重这一点,而不考虑图形。但是IB做的事情有点不同

我认为我的问题在于我无法准确理解不同UIViewContentMode的功能,也无法找到在运行时“关闭”图形操作的正确方法。

有人能帮我一点忙吗:)


非常感谢。

如果不设置该值,默认值为
UIViewContentModeScaleToFill
。如果在代码中执行,然后调用
setNeedsDisplay
是否“按比例填充”?我认为这取决于在强制实施内容模式时如何“在代码中执行”——我假设IB正在init中执行一些额外的操作,以应用您在代码中没有执行的内容模式

无论如何,如果不希望它“缩放”,可以选择名称中没有“缩放”一词的任何UIViewContentMode操作。查看每个视图的详细功能。

这里让我感到惊讶的是,superViews contentMode值当然也作用于子视图。因此,我一直在设置子视图contentMode值,但没有任何更改,直到我更改了SuperView。谢谢你,埃里克