样式因iOS SDK 4.3到5.0而异

时间:2011-11-28 09:28:15

标签: ios xcode ios5 styling

我在我的应用程序中使用内置的Mail-composer。根据我用来编译App的iOS SDK,我会得到不同的结果:

GOOD :iOS SDK 4.3 good http://k.minus.com/jbmHVxSGOpPnhE.png


BAD :iOS SDK 5.0 bad http://k.minus.com/jwkNg6irPuMKU.png

那么使用SDK iOS 5.0实现相同外观的最佳方法是什么?

非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

我可以解决我的问题如下。但是,我不确定这是否是最干净的解决方案,所以请告诉我是否有更标准或更干净的方法:

因为我需要支持iOS> 4.0我需要以下两种方法。

适用于iOS< 5.0(使用类别)

@implementation UINavigationBar (UINavigationBarCategory)

- (void)drawRect:(CGRect)rect {

    if ([[[UIDevice currentDevice] systemVersion] doubleValue] < 5.0) {
        UIColor *color = kColorSCSNavigationBarBackgroundBlue;
        UIImage *img  = [UIImage imageNamed: @"TitleBar.png"];
        [img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
        self.tintColor = color;
    }
}

@end

对于iOS&gt; = 5.0(AppDelegate中的applicationDidFinishLaunching方法)

if ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 5.0) {
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"TitleBar.png"] forBarMetrics:UIBarMetricsDefault];
    [[UINavigationBar appearance] setTintColor:kColorSCSNavigationBarBackgroundBlue];        
}