“在iPhone 3.5中更改了视图框架”;来自iPhone 4英寸屏幕xib的模拟器

“在iPhone 3.5中更改了视图框架”;来自iPhone 4英寸屏幕xib的模拟器,iphone,iphone-5,viewdidload,viewwillappear,Iphone,Iphone 5,Viewdidload,Viewwillappear,我制作了一个viewcontroller XIB作为4英寸视网膜屏幕,并在底部放置了一个自定义视图。 我在iPhone4 3.5“模拟器上运行该应用程序。 大多数iPhone版本都应该支持我的应用程序,因此我在视图控制器的viewdidload上设置了视图框架。我打算在第一次隐藏视图,结果视图的帧被设置为{-320401},{320147}。 但是在ViewWillAppease中,我发现视图的帧被重置为{{0313},{320147} 我想知道为什么这个框架会自动改变 谢谢您的帮助。为什么要以

我制作了一个viewcontroller XIB作为4英寸视网膜屏幕,并在底部放置了一个自定义视图。
我在iPhone4 3.5“模拟器上运行该应用程序。
大多数iPhone版本都应该支持我的应用程序,因此我在视图控制器的viewdidload上设置了视图框架。我打算在第一次隐藏视图,结果视图的帧被设置为
{-320401},{320147}。

但是在ViewWillAppease中,我发现视图的帧被重置为
{{0313},{320147}

我想知道为什么这个框架会自动改变


谢谢您的帮助。

为什么要以这种方式隐藏视图?为什么不使用view.hidden属性呢?是的,
view.hidden
是隐藏视图的更好方法。我将展示动画。
Try This Code

+(BOOL)isDeviceiPhone5
{
    BOOL iPhone5 = FALSE;

    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    if (screenBounds.size.height == 568) {
        // code for 4-inch screen
        iPhone5 = TRUE;
    }
    else
    {
        iPhone5 = FALSE;
        // code for 3.5-inch screen
    }
    return iPhone5;

}


+(CGRect )getFrameFor_iPhone4_height:(CGRect)frame
{
    frame.size.height = frame.size.height - 87.0;
    return frame;
}
+(CGRect )getFrameFor_iPhone4_yPos:(CGRect)frame
{
    frame.origin.y = frame.origin.y - 87.0;
    return frame;
}