0

私のアプリケーションでは、UIViewを含む画面全体をオーバーラップして暗くするを開始したいのですUINavigationBarが、コードは次のとおりです。

- (void)showInstruction
{
    self.holedView = [[JMHoledView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    [self.view addSubview:self.holedView];
}

しかし、実際には、画面に が表示されていself.holedViewない地区を暗くすることしかできません。UINavigationBarどうやってやるの?

4

4 に答える 4

2

ビューをサブビューとしてウィンドウまたはナビゲーション コントローラーのビューに追加できます。

[self.navigationController.view addSubview:yourView];

また

[[[[UIApplication sharedApplication] delegate] window] addSubview:yourView];

ビューのデリゲートを作成して、必要に応じてスーパービューから削除します

于 2015-05-06T07:57:28.863 に答える
1

薄暗い透過画像を使用して、ナビゲーション バーの背景画像として設定できます。

例えば私の場合、α0.2の黒の透過画像を作成し、ナビゲーションの背景画像に設定し、背景色をクリアカラーにしました

 [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"black_patch.png"]
                                              forBarMetrics:UIBarMetricsDefault];
[UINavigationBar appearance].translucent = YES;
navController.view.backgroundColor = [UIColor clearColor];
于 2015-05-06T07:55:03.040 に答える
0

これを使用して、メイン ウィンドウに subView を追加します。

[[UIApplication sharedApplication].keyWindow addSubview:view];
于 2015-05-06T08:00:30.513 に答える