web-dev-qa-db-ja.com

iOS7の通知パターン

アクション(ダウンロードなど)が正常に完了したことをユーザーに警告するためのiOS7の便利な通知パターンはありますか?比較は、Androidの 'Toast' 通知になります。 Apple HIG docsには何も見つかりませんでした。

注:これは、何かを閉じるか選択するためにユーザーがアクションを中断する必要があるアラートの場合とは異なります。

4
squeezemylime

私が考えることができる唯一の解決策は、iOS5から出回っている通知バナーです。通知は最終的に通知センターに表示されます。これは、電話を見ていなかったときに画面にも表示されるので便利です。

iOS notification banner

3
Mariusz Ciesla

「トースト」とは何かについてさらに読むと、通知センター(ユーザーが無効にすることができる)を介して外部ではなく、アプリ内で何かが起こっている(または起こった)ことをユーザーに知らせるためにフィードバックメカニズムを参照していると想定します。 。

これらのインスタンスの典型的なデザインパターンは、テキストの説明を含む進行状況バーです。

  1. たとえば、メールでは、メッセージを送信すると、ツールバー(画面の下部)に「送信中...」と表示され、ツールバーの上部に進行状況バーがあり、ユーザーに送信の進行状況を通知します。
  2. 別の例はメッセージです。ここでは、ナビゲーションバー(画面の上部)に「送信中...」と表示され、ナビゲーションバーの下部に進行状況バーがあります。
  3. IBooksで本をダウンロードすると、表紙の中にプログレスバーが付いた本が表示され、テキストは表示されません。
  4. アプリを更新すると、放射状(円形)の進行状況メーターが表示され、ユーザーに進行状況が通知されます。
  5. 非ネイティブバリエーションの場合-Facebookアプリは、ユーザーが自分のアカウントに投稿するときにプログレスバー+チェックマークを使用します。

2013年のWWDCビデオでは、視聴に開発者アカウントを必要とするディスカッションもあります。そこでは、テキストフィードバックの増加としてiOS 7の背後にある哲学の1つが説明されています。したがって、Interface Builder内でラベルを作成することもできます-自動レイアウトを使用して(またはプログラムで)配置します。次に、次のようなものを使用してラベルを表示および非表示にすることができます。

-(void)displayBurstNotificationMessage:(NSString*)message forLabel:(UILabel*)label {
    label.text = message;

    [UIView animateWithDuration:0.25 
                     animations:^{
        label.alpha = 1.0; //fade in

    } completion:^(BOOL finished) {
        [UIView animateWithDuration:0.5 
                              delay:5 
                            options:0 
                         animations:^{
            label.alpha = 0.0; //fade out

        } completion:nil];
    }];
}

これにより、ラベルが1/4秒で存在するようになります(notificationLabel.alpha = 1.0)-フェードインが終了したら、5秒待ってから(遅延)、フェードアウトします(notification.alpha = 0.0)。 0.5秒(animateWithDuration)。完了処理は一切行われません。

編集:概念/位置ごとに異なるラベルが必要な場合があるため、「ラベル」ビットを追加しました。このようにして、メソッドは画面上のどのラベルでも機能します。

編集2:カレンダーアプリを今日見ていたところ、月ビューに通知パターンが表示されていました。月をすばやくスクロールすると、ナビゲーションコントローラーのすぐ下に月の名前と年が表示された小さなバナーが表示されます。

お役に立てば幸いです。

1
Josh Bruce

私は自分のアプリケーションの1つで同じようなニーズがあり、iOSでもToastのようなUIコントロールを見つけることができませんでした。結局、自分で作ったばかりです。

0