質問

iOS 5およびXcode4.2にアップグレードした後、少しデザインの問題を抱えています

これが私の見解がiOS 4でどのように見えるかです:

1 http://casperslynge.dk/1

そして、これがiOS 5のどのように見えるかです:

2 http://casperslynge.dk/2

ナビゲーションデリゲートには、上部に「画像」を描画する次の方法があります。

- (void)drawRect:(CGRect)rect {
    UIImage *image;
    if(self.barStyle == UIBarStyleDefault){
        image = [UIImage imageNamed: @"topbar_base.png"];
    }
    else{
        image = [UIImage imageNamed: @"nyhedsbar_base.png"];    
    }
    [image drawInRect:CGRectMake(-1, -1, self.frame.size.width+3, self.frame.size.height+3)];
}

そして、私のコントローラーの中で、私は次のことを設定します:

self.navigationBarStyle = UIBarStyleBlack;

どうしてiOS 5で機能していないのですか?

ありがとう

役に立ちましたか?

解決

iOS5では、使用する必要があります UIAppearance. 。それを見てください。 iOS4をサポートし続けることができるように、条件付きで使用する例を次に示します。

// iOS5-only to customize the nav bar appearance
if ([[UINavigationBar class] respondsToSelector:@selector(appearance)]) {
    UIImage *img = [UIImage imageNamed: @"NavBarBackground.png"];
    [[UINavigationBar appearance] setBackgroundImage:img forBarMetrics:UIBarMetricsDefault];
}

ご覧のとおり、これはカスタム背景画像を設定します 全て uinavigationbars。 uiapearanceでできることはたくさんあります。あなたはあなたが現在しているカスタムのものを保持したいと思うでしょう drawRect: Pre-IOS4デバイスは引き続きそれを使用しており、新しいUIAppearanceコードではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top