Xamarin iOS教程之警告檢視

大學霸發表於2015-06-23

Xamarin iOS教程之警告檢視

Xamarin iOS警告檢視

如果需要向使用者顯示一條非常重要的訊息時,警告檢視(UIAlertView類)就可以派上用場了。它的功能是把需要注意的資訊顯示給使用者。一般顯示一條資訊,或者是顯示一條資訊和幾個按鈕。本節將主要講解如何為主檢視新增警告檢視,如何將警告檢視進行顯示、如何以不同的形式顯示警告檢視以及響應警告檢視。

Xamarin iOS為主檢視新增警告檢視

在工具欄中是沒有警告檢視的,開發者必須使用程式碼的形式在主檢視中進行新增。它的新增和其他檢視的新增是有區別的。具體步驟如下:

1.例項化物件

UIAlertView類提供的警告檢視,所以在使用前,必須要進行例項化。其語法形式如下:

  • UIAlertView 物件名=new UIAlertView();

2.顯示

在例項化物件以後,就是此警告檢視物件進行顯示。此時不需要使用AddSubview()方法,而需要使用Show()方法,其語法形式如下:

  • 物件名.Show();

【示例2-27】以下將實現在主檢視中顯示一個警告檢視的功能。程式碼如下:

  • using System;

  • using System.Drawing;

  • using MonoTouch.Foundation;

  • using MonoTouch.UIKit;

  • namespace Application

  • {

  •          public partial class __25ViewController : UIViewController

  •          {

  •                    ……                                                //這裡省略了檢視控制器的構造方法和析構方法

  •                    #region View lifecycle

  •                    public override void ViewDidLoad ()

  •                    {

  •                             base.ViewDidLoad ();

  •                             // Perform any additional setup after loading the view, typically from a nib.

  •                             UIAlertView alertview = new UIAlertView ();                                                 //例項化警告檢視物件

  •                             alertview.Show ();                                                                                                //顯示

  •                    }

  • ……                                                 //這裡省略了檢視載入和解除安裝前後的一些方法

  •                    #endregion

  •          }

  • }

執行效果如圖2.46所示。


2.46  執行效果

Xamarin iOS常用的警告檢視樣式

在一個應用程式中,警告檢視的樣式是多種多樣的。以下將講解使用者在應用程式中常見到的四種警告檢視樣式。

1.無按鈕的警告檢視

在有的警告檢視中是不需要要有按鈕的,當然,它不需要使用者在此檢視上做任何的操作,這就是無按鈕的警告檢視。

【示例2-28】以下就是一個簡單的無按鈕的警告檢視的實現。程式碼如下:

  • using System;

  • using System.Drawing;

  • using MonoTouch.Foundation;

  • using MonoTouch.UIKit;

  • namespace Application

  • {

  •          public partial class __26ViewController : UIViewController

  •          {

  •                    ……                                                //這裡省略了檢視控制器的構造方法和析構方法

  •                    #region View lifecycle

  •                    public override void ViewDidLoad ()

  •                    {

  •                             base.ViewDidLoad ();

  •                             // Perform any additional setup after loading the view, typically from a nib.

  •                             UIAlertView alertView = new UIAlertView ();

  •                             alertView.Title = "提示";                                                         //設定警告檢視的標題

  •                             alertView.Message = "電量不足";                                       //設定警告檢視向使用者顯示的資訊

  •                             alertView.Show ();

  •                    }

  •                    ……                                                //這裡省略了檢視載入和解除安裝前後的一些方法

  •                    #endregion

  •          }

  • }

執行效果如圖2.47所示


2.47  執行效果

2.具有一個按鈕的警告檢視

具有一個按鈕的警告檢視,一般是想要強制性的引起使用者的注意。如果使用者沒有注意到此檢視,那麼它會一直存在,直到使用者注意此檢視,並使用此檢視中提示的按鈕去關閉,警告檢視才會消失。如何為警告檢視新增按鈕呢,需要使用AddButton()方法實現,其語法形式如下:

  • 警告檢視物件名.AddButton(“按鈕標題”);

【示例2-29】以下就是一個具有一個按鈕的警告檢視的實現。程式碼如下:

  • using System;

  • using System.Drawing;

  • using MonoTouch.Foundation;

  • using MonoTouch.UIKit;

  • namespace Application

  • {

  •          public partial class __27ViewController : UIViewController

  •          {

  •                    ……                                                         //這裡省略了檢視控制器的構造方法和析構方法

  •                    #region View lifecycle

  •                    public override void ViewDidLoad ()

  •                    {

  •                             base.ViewDidLoad ();

  •                             // Perform any additional setup after loading the view, typically from a nib.

  •                             UIAlertView alertView = new UIAlertView ();

  •                             alertView.Title="提示";

  •                             alertView.Message="記憶體空間不足";

  •                             alertView.AddButton ("前去清理");                                     //為警告檢視新增按鈕

  •                             alertView.Show ();

  •                    }

  • ……                                                          //這裡省略了檢視載入和解除安裝前後的一些方法

  •                    #endregion

  •          }

  • }

執行效果如圖2.48所示。


2.48  執行效果

3.具有多個按鈕的警告檢視

有時,在警告檢視中有一個按鈕是無法滿足需要的,需要在此檢視中新增多個按鈕,從而讓使用者實現多方面的選擇。此時還是需要使用AddButton()方法。

【示例2-30】以下就是具有多個按鈕的警告檢視的效果,程式碼如下:

  • using System;

  • using System.Drawing;

  • using MonoTouch.Foundation;

  • using MonoTouch.UIKit;

  • namespace Application

  • {

  •          public partial class __28ViewController : UIViewController

  •          {

  •                    ……                                                                                     //這裡省略了檢視控制器的構造方法和析構方法

  •                    #region View lifecycle

  •                    public override void ViewDidLoad ()

  •                    {

  •                             base.ViewDidLoad ();

  •                             // Perform any additional setup after loading the view, typically from a nib.

  •                             UIAlertView alertView = new UIAlertView ();

  •                             alertView.Title="謝謝";

  •                             alertView.Message = "親如果你對我們的商品滿意,請點亮五顆星";

  •               //新增多個按鈕

  •                             alertView.AddButton ("前往評論");

  •                             alertView.AddButton ("暫不評論");

  •                             alertView.AddButton ("殘忍拒絕");

  •                             alertView.Show ();

  •                    }

  •               ……                                                                                     //這裡省略了檢視載入和解除安裝前後的一些方法

  •                    #endregion

  •          }

  • }

執行效果如圖2.49所示。


2.49  執行效果

4.具體文字輸入框的警告檢視

在警告檢視中也可以新增文字框檢視,此時需要使用AlertViewStyle屬性。

【示例2-31】以下的程式碼就是為文字框新增了兩個警告檢視,程式碼如下:

  • using System;

  • using System.Drawing;

  • using MonoTouch.Foundation;

  • using MonoTouch.UIKit;

  • namespace Application

  • {

  •          public partial class __29ViewController : UIViewController

  •          {

  •                    ……                                                                   //這裡省略了檢視控制器的構造方法和析構方法

  •                    #region View lifecycle

  •                    public override void ViewDidLoad ()

  •                    {

  •                             base.ViewDidLoad ();

  •                             // Perform any additional setup after loading the view, typically from a nib.

  •                             UIAlertView alertView = new UIAlertView ();

  •                             alertView.Title="登入";

  •                             alertView.AlertViewStyle = UIAlertViewStyle.LoginAndPasswordInput;//設定警告檢視的風格

  •                             alertView.Show ();

  •                    }

  •                    ……                                                                   //這裡省略了檢視載入和解除安裝前後的一些方法

  •                    #endregion

  •          }

  • }

執行效果如圖2.50所示。


2.50  執行效果

注意:AlertViewStyle屬性一共有四種風格,這四種風格的效果如圖2.51所示。


2.51  警告檢視風格效果

Xamarin iOS響應警告檢視

在以上的警告檢視示例中,為警告檢視新增了按鈕,它們的功能都是一樣的,那就是實現警告檢視的關閉。此時,多按鈕的警告檢視就顯得多此一舉了,那麼如何讓警告檢視中的每一個按鈕都實現它自己的功能呢?這就需要實現警告檢視的響應,此時需要使用到Dismissed事件,其語法形式如果:

  • 警告檢視物件.Dismissed +=觸控按鈕後的方法;

  • 或者是:

  • 警告檢視物件.Dismissed += (sender, e) => {

  •                             ……

  • };

其中,sender表示事件監視的物件,e就是事件所需要的資料。

【示例2-32】以下的程式碼將在主檢視中顯示一個標題為btnShowAlert的按鈕。觸控此按鈕後,將顯示一個具有兩個按鈕的警告檢視,其標題分別為OKCancel。當使用者觸控警告檢視中的任意一個按鈕,都會改變為btnShowAlert按鈕的標題,程式碼如下:

  • using System;

  • using System.Drawing;

  • using MonoTouch.Foundation;

  • using MonoTouch.UIKit;

  • namespace Application

  • {

  •          public partial class __12ViewController : UIViewController

  •          {

  •                    UIButton btnShowAler;

  •                    ……                                                                   //這裡省略了檢視控制器的構造方法和析構方法

  •                    #region View lifecycle

  •                    public override void ViewDidLoad ()

  •                    {

  •                             base.ViewDidLoad ();

  •                             // Perform any additional setup after loading the view, typically from a nib.

  •                             btnShowAler = new UIButton ();

  •                             btnShowAler.Frame = new RectangleF (106, 269, 108, 30);

  •                             btnShowAler.SetTitle ("Show Alert", UIControlState.Normal);

  •                             this.View.AddSubview (btnShowAler);

  •                             btnShowAler.TouchUpInside+=(sender, e) =>this.ShowAlert("Alert Message", "Tap OK or Cancel") ;

  •                    }

  •           //觸控btnShowAler按鈕後實現的功能

  •                    private void ShowAlert(string title, string message)

  •                    {

  •                             // Create the alert

  •                             UIAlertView alertView = new UIAlertView();                                   //例項化警告檢視物件

  •                             alertView.Title = title;                                                                                    //設定標題

  •                             alertView.Message = message;                                                                //設定資訊

  •               //新增按鈕

  •                             alertView.AddButton("OK");

  •                             alertView.AddButton("Cancel");

  •               //響應警告檢視

  •                             alertView.Dismissed += (sender, e) => {

  •                                      if (e.ButtonIndex == 0)

  •                                      {

  •                                                btnShowAler.SetTitle("OK!",UIControlState.Normal);

  •                                      } else

  •                                      {

  •                                                btnShowAler.SetTitle("Cancelled!",UIControlState.Normal);

  •                                      }

  •                             };

  •                             alertView.Show();

  •                    }

  •               ……                                                         //這裡省略了檢視載入和解除安裝前後的一些方法

  •                    #endregion

  •          }

  • }

在此程式中sender表示的就是警告檢視中的按鈕,e表示點選按鈕的一些引數如ButtonIndex。執行效果如圖2.52所示。


2.52  執行效果

本文選自:Xamarin iOS開發實戰大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-1709052/,如需轉載,請註明出處,否則將追究法律責任。

相關文章