21

ScoutMob のような消費者向けのシックなアプリで非常に人気が高まっています。起動時にホーム画面を覆う 60% の透過ビューを実装しようとしています。ホーム画面の機能の使用方法を説明し、タップすると消えます。

アプリ全体が完成しました (数年前から .xib を使用していますが、他の iOS 5.0 以降のアプリケーションでこの機能を再利用する可能性が高いため、ストーリーボード形式でも自由に説明してください。)

単一のビューを作成するのに問題はありませんが、一時的に別のビューを重ねることは、直感的に理解できませんでした。他の人が同じことをしようとしている場合に備えて、調査を続け、見つけた役立つヒントを含めます.

4

5 に答える 5

4

これは、UITextView と UIButton を使用して簡単に実現できます。表示したいコンテンツを含む画面に UITextView を配置して、画面のフル フレーム サイズにし、背景色を背景アルファが .6 の黒の背景に変更するだけです。

[UIColor colorWithRed: 0 withGreen: 0 withBlue: 0 withAlpha: .6];

次に、ボタンをサブビューとして上部に配置し、画面のフル フレームにし、アルファを 0 に設定します。ボタンのアクションを設定して、テキストビューとボタンを非表示にします。

例:

UITextView* textview = [[UITextView alloc] initWithFrame:self.view.frame];
[textview setText: @"Text here"];
[textview setBackgroundColor: [UIColor colorWithRed: 0 withGreen: 0 withBlue: 0 withAlpha: .6]];
[textview setTextColor: [UIColor whiteColor]];
[self.view addSubview: textview];

UIButton* btn = [[UIButton alloc] initWithFrame:self.view.frame];
[btn setAlpha:0];
[btn addTarget:self action:@selector(method) forEvent:UIControlEventTouchUpInside];
[self.view addSubview: btn];

addTarget: メソッドを確認することをお勧めします。それらが私の頭の上から離れた正しいパラメーターであるかどうかはわかりません。

于 2013-04-29T16:19:10.057 に答える
1
  1. create UIView、好きな名前を付けて ( dimBackgroundUIView)、backgroundcolor を Black に設定し、alpha を 0.1 または 0.2 または ... に設定します。
  2. 背景を暗くする必要がある場合は、次の 2 行のコードを追加します。[self.view addSubview:dimBackgroundUIView]; [self addConstraintsForDimView];
  3. 薄暗い背景を削除する場合は、次の 2 行のコードを追加します。 if(dimBackgroundUIView) [dimBackgroundUIView removeFromSuperview];
  4. の制約 (レイアウト) を追加することを忘れないでください dimBackgroundUIView

これを確認してください: ビューが表示されているときのiOS Dim background

コードの下にある注を読んで、何をしなければならないかを理解することを忘れないでください。

于 2016-01-11T09:28:07.777 に答える
1

それがアプリの最初の起動かどうかを判断するメカニズムを作成し、メイン ビュー コントローラーに (おそらく画像) ビューを現在のビューの上に 0.6 アルファで追加するように指示するだけです。

if (figureOutIfIsFirstLaunch)
{
    UIImageView *myOverlay = [...];
    myOverlay.frame = self.view.bounds;
    myOverlay.alpha = 0.6;
    [self.view addSubview:myOverlay];
} 
于 2013-04-29T16:16:45.843 に答える