3

画面全体にアプリ自体に関する情報をオーバーレイする画像をアプリに追加する方法を知りたいです。

要件は次のとおりです。

  • 初回起動時に一度だけ表示
  • 画面全体をカバーする (タブバーとナビゲーションバーを含む)
  • ユーザーが画像をクリックすると、画像が消えて二度と表示されないようにする必要があります;)

例(iPhoneには必要ですが、iPadには1つしか見つかりませんでした):

ここに画像の説明を入力

これどうやってするの?使用できる無料のフレームワークはありますか? ヒント、情報、またはリンクは大歓迎です。

4

2 に答える 2

6
  1. 以前にヘルプ ビューが表示された (および閉じられた) 場合は、NSUserDefaults を確認します。
  2. UIImageView を作成し、ビューに追加します
  3. UITapGestureRecognizer を imageView に追加します
  4. タップ ジェスチャのアクションで、ヘルプ ビューを削除し、ビューが閉じられたことを NSUserDefaults に保存します。

.

- (void)viewDidLoad {
    [super viewDidLoad];
    if (![[NSUserDefaults standardUserDefaults] boolForKey:@"didDisplayHelpScreen"]) {
        UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject];

        UIImageView *imageView = [[UIImageView alloc] initWithFrame:window.bounds];
        imageView.image = [UIImage imageNamed:@"78-stopwatch"];
        imageView.backgroundColor = [UIColor greenColor];
        imageView.alpha = 0.5;
        UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissHelpView:)];
        [imageView addGestureRecognizer:tapGesture];
        imageView.userInteractionEnabled = YES;
        [window addSubview:imageView];
    }
}

- (void)dismissHelpView:(UITapGestureRecognizer *)sender {
    UIView *helpImageView = sender.view;
    [helpImageView removeFromSuperview];
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"didDisplayHelpScreen"];
}
于 2013-02-10T11:53:27.113 に答える
3

NSUserDefaults でいくつかの BOOL キーを定義します。NO の場合は、オーバーレイを表示して YES に設定します。次回ユーザーがアプリを起動すると、この手順はスキップされます。

ビューをカバーする画像を追加するには、コードは次のようになります。

UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.frame];
imageView.image = [UIImage imageNamed:@"overlay image"];
[self.view addSubview:imageView];
于 2013-02-10T11:31:46.533 に答える