0

ナビゲーションバーのデフォルトの背景を設定するのと同じように、AppDelegateでアプリケーション全体のデフォルトの背景画像を設定する方法はありますか?

例:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigation-bar.jpg"] forBarMetrics:UIBarMetricsDefault];

現在、すべてのViewControllerに次のコードがあります。

UIImage *backgroundImage = [UIImage imageNamed:@"bg.png"];
UIImageView *backgroundImageVIew = [[UIImageView alloc] initWithImage:backgroundImage];
self.myTable.backgroundView = backgroundImageVIew;

AppDelegateでこれを試しました:

UIImage *backgroundImage = [UIImage imageNamed:@"bg.png"];
UIImageView *backgroundImageVIew = [[UIImageView alloc] initWithImage:backgroundImage];
[[UITableView appearance] setBackgroundView:backgroundImageVIew];

私がセグエするものを除いて、それはすべてのビューでうまく機能します。テーブルビューセルを押して別のビューに移動すると、アプリケーションがフリーズし、CPUが最大100%になります。

助言がありますか?

4

2 に答える 2

0

AppDelegatesdidFinishLaunchingWithOptionsメソッドの次のコードで解決しました。

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg.png"]];
imageView.frame = CGRectMake(imageView.frame.origin.x, 64.0, imageView.frame.size.width, imageView.frame.size.height);
[window addSubview:imageView];

Y フレームの値 64.0 は、ステータス バーとナビゲーション バーのすぐ下に imageView をプッシュするためのものです (20 + 44)。

于 2013-06-07T21:37:42.750 に答える
0

pushViewController メソッドが次のような UINavigationController のカスタム サブクラスを作成できます。

    -(void) pushViewController:(UIViewController*) vc animated:(BOOL) animated
    {
            UIImage *backgroundImage = [UIImage imageNamed:@"bg.png"];
            UIImageView *backgroundImageVIew = [[UIImageView alloc] initWithImage:backgroundImage];
            vc.backgroundView = backgroundImageVIew;
            [super pushViewController:vc animated:animated];
    }
于 2012-11-15T21:26:50.583 に答える