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的按钮。触摸此按钮后,将显示一个具有两个按钮的警告视图,其标题分别为OK和Cancel。当用户触摸警告视图中的任意一个按钮,都会改变为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人!

Xamarin iOS教程之警告视图的更多相关文章

  1. Xamarin iOS教程之自定义视图

    Xamarin iOS教程之自定义视图 Xamarin iOS自定义视图 工具栏中的视图在实际应用开发中用的很多,但是为了吸引用户的眼球,开发者可以做出一些自定义的视图. [示例2-33]以下将实现一 ...

  2. Xamarin iOS教程之视图显示图像

    Xamarin iOS教程之视图显示图像 Xamarin iOS显示图像 在主视图中显示一个图像,可以让开发者的应用程序变的更有趣,例如,在一些应用程序开始运行时,都会通过图像来显示此应用程序的玩法或 ...

  3. Xamarin iOS教程之添加和定制视图

    Xamarin iOS教程之添加和定制视图 Xamarin iOS用户界面——视图 在iPhone或者iPad中,用户看到的摸到的都是视图.视图是用户界面的重要组成元素.例如,想要让用户实现文本输入时 ...

  4. Xamarin iOS教程之进度条和滚动视图

    Xamarin iOS教程之进度条和滚动视图 Xamarin iOS 进度条 进度条可以看到每一项任务现在的状态.例如在下载的应用程序中有进度条,用户可以很方便的看到当前程序下载了多少,还剩下多少.Q ...

  5. 最详细在Windows安装Xamarin.iOS教程

    最详细在Windows安装Xamarin.iOS教程 来源:http://www.cnblogs.com/llyfe2006/articles/3098280.html 本文展示了如何设立Xamari ...

  6. Xamarin iOS教程之键盘的使用和设置

    Xamarin iOS教程之键盘的使用和设置 Xamarin iOS使用键盘 在文本框和文本视图中可以看到,当用户在触摸这些视图后,就会弹出键盘.本节将主要讲解键盘的输入类型定义.显示键盘时改变输入视 ...

  7. Xamarin iOS教程之显示和编辑文本

    Xamarin iOS教程之显示和编辑文本 Xamarin iOS显示和编辑文本 在一个应用程序中,文字是非常重要的.它就是这些不会说话的设备的嘴巴.通过这些文字,可以很清楚的指定这些应用程序要表达的 ...

  8. Xamarin iOS教程之使用按钮接接收用户输入

    Xamarin iOS教程之使用按钮接接收用户输入 Xamarin iOS使用按钮接接收用户输入 按钮是用户交互的最基础控件.即使是在iPhone或者iPad中,用户使用最多操作也是通过触摸实现点击. ...

  9. Xamarin iOS教程之编辑界面编写代码

    Xamarin iOS教程之编辑界面编写代码 Xamarin iOS的Interface Builder Interface Builder被称为编辑界面.它是一个虚拟的图形化设计工具,用来为iOS应 ...

随机推荐

  1. eos交易同步过程和区块生产过程源码分析

    交易同步过程 1 通过命令cleos调用 cleos transfer ${from_account} ${to_account} ${quantity} 发起交易2 eos调用chain_plugi ...

  2. MVC、MVP和MVVM浅谈

    MVC是最经典的开发模式之一,最早是后台那边来的,后台前端的复杂度也上来了,MVC的开发模式也带进前端了. MVC: MVC有两个很明显的问题: 1.m层和v层直接打交道,导致这两层耦合度高 2.因为 ...

  3. 函数和常用模块【day04】:内置函数分类总结(十一)

    重点掌握 字符串格式化format() 字符串格式化百分号 判断 转换 数据类型 帮助信息 map和filter()函数 局部变量全局变量 计算内置函数 常用内置函数(其他) 后续会讲 不常用

  4. angular模块

    深入浅析AngularJS中的模块 模块是AngularJS应用程序的一个组成部分,模块可以是一个Controller.Service服务.Filter过滤器.directive指令,这些都属于模块. ...

  5. bzoj千题计划209:bzoj1185: [HNOI2007]最小矩形覆盖

    http://www.lydsy.com/JudgeOnline/problem.php?id=1185 题解去看它 http://www.cnblogs.com/TheRoadToTheGold/p ...

  6. webstorm去掉vue错误提示

  7. 阿里云Linux服务器挂载数据盘

    步骤1.登录服务器2.检查磁盘信息 命令:fdisk -l3.磁盘分区 命令:fdisk /dev/xvdb 查看命令帮助 m n //新增一个分区 p //建立一个主分区 1 //设置盘符为1 回车 ...

  8. Web性能优化系列(2):剖析页面绘制时间

    本文由 伯乐在线 - J.c 翻译,sunbiaobiao 校稿.未经许可,禁止转载!英文出处:www.deanhume.com.欢迎加入翻译小组. 最近,我参加了在伦敦举办的Facebook移动开发 ...

  9. Spring Mvc + Maven + yuicompressor 使用 profile 来压缩 javascript ,css 文件; (十)

    profile相关知识点: 在开发项目时,设想有以下场景: 你的Maven项目存放在一个远程代码库中(比如github),该项目需要访问数据库,你有两台电脑,一台是Linux,一台是Mac OS X, ...

  10. J2EE的体系结构是指什么?

    J2EE 即Java2平台企业版,它提供了基于组件的方式来设计.开发.组装和部署企业应用.J2EE使用多层分布式的应用模型,这个多层通常通过三层或四层来实现: 客户层,运行在客户计算机上的组件. We ...