2011-07-29 5 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

トンを使用してビューを配置します。?。彼はスーパービューの座標、境界ではなく、フレームを使用します。ステータスバーがある場合、superview.frame.xはゼロではありませんが、サブビューの座標は位置ではなくスーパービューに相対的です。

+0

トリックをやった@joerickに感謝します:) –

0

チェック以下:

  • をごUIViewController's XIBでは、それは、ステータスバーを持っている場合。 「はい」の場合は、「なし」を入力します。 (あなたは自分のルートUIViewを選択し、インスペクタでそれを設定することができます。

  • あなたはXIBで、あなたのアプリケーションデリゲートのにあなたのUIViewControllerを追加していますか?はい場合は、あなたのUIViewController XIBアプリケーションのデリゲートにチェックし、それがステータスを持っているかどうかを確認しに行きます。バー

PS:そのと呼ばれるステータスバーに何があなたのUINavigation 45.0fに使用するフレームについて

編集

+0

私はVCのXIBを持っていません。わかりますように、私はそれを起動しません: '[[MenuViewController alloc] initWithNibName:nil bundle:nil];' そしてあなたはxibをappdelegateしますMainWindow.xib(?)を意味し、これにはステータスバーがありましたが、削除には役立ちませんでした。他の提案。新しいプロジェクトを開始するときにこの動作が発生し、viewcontrollerを追加するだけで間違っていることがわかりません。 –

+0

投稿を編集しました。 – Peres

+0

45.0fは、navigationbarだけの高さで、これはしかし、フレームを印刷するときに、私が得るものです: navigationbarフレームを: X:0 Y:0 幅:0 高さ:1077149696 (と、それは正確ですimageviewとself.viewも同じです) –

関連する問題