mac*_*_55 10 iphone xcode window xib uiview
我创建了一个简单的iPhone应用程序,它有两个.xib文件.在应用程序中的app委托确实完成启动我通过调用显示第一个.xib文件:
[window addSubview:myView];
Run Code Online (Sandbox Code Playgroud)
我在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];
}
Run Code Online (Sandbox Code Playgroud)
从我所看到的,我总是调用相同的代码行,无论它是在内部applicationDidFinishLaunching还是在内部,[self originalView]但它似乎window变成了一个不同的对象.
Nik*_*uhe 12
当以正常方式使用UIViewController(即在UINavigationController上推送它)时,它会调整其视图的帧.
由于您手动添加子视图,因此您必须自己调整框架.原点位于右上角(状态栏的顶部).您希望将视图向下移动20个像素.
这是我的解决方案:
// 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];
Run Code Online (Sandbox Code Playgroud)
它现在对我来说很好,祝你好运〜:)
| 归档时间: |
|
| 查看次数: |
8605 次 |
| 最近记录: |