【问题标题】:UIView frame issue between iPhone 4 & 5iPhone 4 和 5 之间的 UIView 框架问题
【发布时间】:2013-07-28 16:10:45
【问题描述】:

在我的 XIB 中,我将视图大小设置为 Retina 3.5,并将“使用自动布局”设置为关闭。

以编程方式,我创建了一个 UIImageView 并在 Y 坐标 316 处绘制它,并将 autoresizingMask 设置为 UIViewAutoresizingFlexibleTopMargin 。

在 iPhone 5 模拟器上测试视图时,UIImageView 位于视图的底部(它应该在的位置)。 在运行时,我在相同的 Y 坐标处绘制完全相同的 UIImageView 并将 autoresizingMask 设置为 UIViewAutoresizingFlexibleTopMargin 。 新的 UIImageView 绘制在与第一个 UIImageView 不同的位置(视图底部)。

我错过了什么吗?

谢谢, 奥德。

【问题讨论】:

    标签: ios autoresizingmask


    【解决方案1】:

    这取决于您何时添加子视图(在超级视图自动调整大小之前或之后)。在任何情况下,如果您要布置视图,使其静态固定在底部,您应该从超级视图和子视图的heigths 计算y 位置,然后不管它是在之前完成还是之后。

    【讨论】:

    • 第一个子视图在 ViewDidLoad 方法中设置,但在 [super viewDidLoad] 调用之后,它被设置在正确的位置(Y 坐标是从 view.frame.size.height 属性计算的)。第二个子视图的框架是从第一个子视图的框架复制而来的,并且在底部没有绘制。
    • 所以框架是从现有视图复制的,自动调整大小的掩码是相同的,超级视图是相同的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多