2011-07-29 46 views
0

开头我已经尝试开始基于视图的应用程序和基于窗口的应用程序,但我仍然有同样的问题。 当我添加一个导航栏时,它看起来像从〜(0,20)的绳索开始,并在它和“系统托盘”之间留下一些空间(我找不到与时钟和电池等相关的字。 )ViewController视图以〜(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声明即可,保留属性和:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.menu = [[MenuViewController alloc] initWithNibName:nil bundle:nil]; 
    [self.window setRootViewController:menu]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

将是非常好的,如果有人知道为什么会这样。感谢

回答

1

当采用t定位视图。?。他的超级观点的坐标,使用范围,而不是框架。如果有一个状态栏,你的superview.frame.x将是非零的,但子视图的坐标是相对于超视图而不是位置。

+0

谢谢@joerick那个伎俩:) –

0

检查以下内容:

  • 在你UIViewController's厦门国际银行,如果有状态栏。如果是,则将无。 (您可以设置在检查器中,只需选择你的根UIView

  • 你将你的UIViewController到应用程序委托的由XIB?如果是的话,去看看在App的委托厦门国际银行的UIViewController,看看它是否有状态。酒吧

PS:其所谓的状态栏

编辑那你用你UINavigation的45.0f框架

+0

我没有用于VC的XIB,正如你所看到的,我不会用它启动它:'[[MenuViewController alloc] initWithNibName:nil bundle:nil];' 和appdelegate xib我猜你意思是MainWindow.xib(?),这个有状态栏,但它并没有帮助删除它。任何其他建议。当开始一个新项目时,我得到了这种行为,只是添加一个viewcontroller,所以我不明白我做错了什么。 –

+0

我已编辑我的帖子。 – Peres

+0

的45.0f是导航栏的不仅仅是高度,这是我所得到的印刷虽然帧时: 导航栏架: X:0 Y:0 宽度:0 高度:1077149696 (和它是完全同样的imageview和self.view以及 –

相关问题