-2

これはどのように見えるかです私はナビゲーションバーとツールバー(下部)の両方を使用しているアプリケーションを持っています.両方とも中央から下部まで陰影があります.これがツールバーを作成する方法です`

 [self.navigationController setToolbarHidden:NO animated:YES];



    self.navigationController.toolbar.barStyle = UIBarStyleBlackOpaque;
    self.navigationController.toolbar.frame=CGRectMake(0, [[UIScreen mainScreen] bounds].size.height -12, [[UIScreen mainScreen] bounds].size.width,30);

    self.navigationController.toolbar.tintColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"top_bar.png"]];

and i am doing the navigation bar like this

 UIImage *navBar = [UIImage imageNamed:@"top_bar.png"];

    [[UINavigationBar appearance] setBackgroundImage:navBar forBarMetrics:UIBarMetricsDefault];

どこが間違っているのか誰か教えてくれませんか?

4

1 に答える 1

1

これを行う最も簡単な方法は、1x1 の UIImage を作成し、それをナビゲーション バーとツールバーの背景画像として設定することだと思います。これにより、グラデーションがなくなり、両方のバーが選択した 1 つの単色になります。次に例を示します。

UIImage *image = [self imageWithColor:[UIColor redColor]];

[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
[[UIToolbar appearance] setBackgroundImage:image forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];



- (UIImage *)imageWithColor:(UIColor *)color {
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
}

ナビゲーション バーの下にある影を取り除きたい場合は、次のようにします。

[self.navigationController.navigationBar setClipsToBounds:YES];
于 2013-08-10T13:14:40.513 に答える