我已尝试启动基于视图的应用和基于窗口的应用,但我仍然遇到同样的问题。 当我添加一个导航栏时,它看起来像是从绳子开始〜(0,20)并在它和“系统托盘”之间留下一些空间(我找不到带有时钟和电池等的码头的单词)
我无法弄清楚为什么会发生这种情况,因为框架的nslog告诉我它起源于(0,0)(奇怪的是宽度为0:/但它清晰可见)。
代码:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(self.view.frame.origin.x,
self.view.frame.origin.y+48.0f,
self.view.frame.size.width,
self.view.frame.size.height)];
[image setImage:[UIImage imageNamed:@"IMG_0792.PNG"]];
[self.view addSubview:image];
self.navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(self.view.frame.origin.x,
self.view.frame.origin.y,
self.view.frame.size.width,
45.0f)];
[navBar setDelegate:self];
[navBar pushNavigationItem: [[UINavigationItem alloc] initWithTitle:@"Image Stream"] animated:NO];
[self.view addSubview:navBar];
}
return self;
}
在appdelegate中我只声明了它,retain-property和:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.menu = [[MenuViewController alloc] initWithNibName:nil bundle:nil];
[self.window setRootViewController:menu];
[self.window makeKeyAndVisible];
return YES;
}
如果有人知道为什么会这样,那么会非常好。感谢
答案 0 :(得分:1)
使用superview的坐标定位视图时,请使用bounds,而不是frame。如果有状态栏,则superview.frame.x将为非零,但子视图的坐标是相对于超级视图而不是位置。
答案 1 :(得分:0)
检查以下内容:
在UIViewController's
Xib中,如果它有状态栏。如果是,则将无。 (您可以在检查器中设置它,只需选择根UIView
。
您是否正在通过XIB将UIViewController
添加到您的应用代表?如果是,请检查应用程序代理xib中的UIViewController
,看看它是否有状态栏。
p.s:它的状态栏。
编辑您用于UINavigation的框架的内容? 45.0f。