不知道为什么被周围10px的微幅向上的UIView(Not sure why UIView is b

2019-06-24 08:05发布

我创建了有两个的.xib文件,一个简单的iPhone应用程序。 在应用程序委托并完成发射我通过调用显示第一的.xib文件:

[window addSubview:myView];

和我做同样的上IBAction为一个UIButton的改变视图myView2。

什么我发现是,有大约10像素的白色吧,当我运行应用程序时,两个观点。 我还注意到,按钮由10个像素偏移(约)。 所以我得到的印象是,鉴于正在从10个像素,显示关闭屏幕和结束短。

任何想法,为什么这可能发生,我怎么能解决这个问题,或者我如何进一步调试这是怎么回事? 我检查了我的.xib文件,它们消耗的装置(即无白条)的整个高度,所以这看起来是里面的XCode一个问题。

编辑:我已经缩小的问题一点点。 我使用两种方法来加载子视图。 当我打开里面的第一个观点applicationDidFinishLaunching一切都很好。 但是,如果我更换了两条消息window[self originalView]方法,那么一切都有点失控。

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
    //[self originalView];  <- I want to use this instead of the following two lines

    // Override point for customization after app launch    
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];

}

-(void)endView{
    endV = [[EndViewController alloc] initWithNibName:@"EndView" bundle:nil];
    [window removeFromSuperview];
    [window addSubview:endV.view];  
}
-(void)originalView{
    viewController = [[MyAppViewController alloc] init];
    [window removeFromSuperview];
    [window addSubview:viewController.view];

}

从我所看到的,我总是调用的代码相同的路线,不管是内部applicationDidFinishLaunching[self originalView]但它似乎是window正在变成是一个不同的对象。

Answer 1:

当使用一个UIViewController正常方式(即, 将其推上一个UINavigationController ),它调整它的视图的帧。

既然你手动添加子视图,你必须自己调整框架。 起源是在右上角(状态栏的顶部)。 你想你的观点转向20个像素下来。



Answer 2:

这里是我的解决方案:

// adjust the frame of subview which is going to be add
self.navController.view.frame = CGRectMake(0, 0, 320, 460);
[self.view addSubView:self.navController.view];

这对我来说,现在工作得很好,好运〜:)



Answer 3:

在界面生成器,你可以添加将出现编程方式(如状态栏或导航栏)模拟界面元素。 在您检查,选择你的观点,并转到属性选项卡。 在这里,你可以模拟的状态栏,上栏或底栏。



Answer 4:

看起来你打电话pushVC本UIViewController在错误的地方。 我有同样的问题。 它是通过移动解决[self.navigationController pushViewController: animated:]viewDidLoadviewDidAppear:在以前UIViewController的层次。



Answer 5:

每当出现一个奇怪的差距,或认为是部分地隐藏状态栏的后面,它是与任

  1. 在你的根控制器shouldAutorotate定义 - 不知道这是否是一个错误或没有,但尽量保持与函数的返回所有子viewcontrollers(通常导致的ViewController被隐藏状态栏后面)一致
  2. 子视图的定义wantsFullscreen - 如果可能的话设置为NO

我在我的应用程序有两种错误并解决了他们! 希望我可以为您节省一定的时间(我浪费了很多就可以了)



文章来源: Not sure why UIView is being nudged up by around 10px