Xamarin iOS教程之警告视图
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教程之警告视图的更多相关文章
- Xamarin iOS教程之自定义视图
Xamarin iOS教程之自定义视图 Xamarin iOS自定义视图 工具栏中的视图在实际应用开发中用的很多,但是为了吸引用户的眼球,开发者可以做出一些自定义的视图. [示例2-33]以下将实现一 ...
- Xamarin iOS教程之视图显示图像
Xamarin iOS教程之视图显示图像 Xamarin iOS显示图像 在主视图中显示一个图像,可以让开发者的应用程序变的更有趣,例如,在一些应用程序开始运行时,都会通过图像来显示此应用程序的玩法或 ...
- Xamarin iOS教程之添加和定制视图
Xamarin iOS教程之添加和定制视图 Xamarin iOS用户界面——视图 在iPhone或者iPad中,用户看到的摸到的都是视图.视图是用户界面的重要组成元素.例如,想要让用户实现文本输入时 ...
- Xamarin iOS教程之进度条和滚动视图
Xamarin iOS教程之进度条和滚动视图 Xamarin iOS 进度条 进度条可以看到每一项任务现在的状态.例如在下载的应用程序中有进度条,用户可以很方便的看到当前程序下载了多少,还剩下多少.Q ...
- 最详细在Windows安装Xamarin.iOS教程
最详细在Windows安装Xamarin.iOS教程 来源:http://www.cnblogs.com/llyfe2006/articles/3098280.html 本文展示了如何设立Xamari ...
- Xamarin iOS教程之键盘的使用和设置
Xamarin iOS教程之键盘的使用和设置 Xamarin iOS使用键盘 在文本框和文本视图中可以看到,当用户在触摸这些视图后,就会弹出键盘.本节将主要讲解键盘的输入类型定义.显示键盘时改变输入视 ...
- Xamarin iOS教程之显示和编辑文本
Xamarin iOS教程之显示和编辑文本 Xamarin iOS显示和编辑文本 在一个应用程序中,文字是非常重要的.它就是这些不会说话的设备的嘴巴.通过这些文字,可以很清楚的指定这些应用程序要表达的 ...
- Xamarin iOS教程之使用按钮接接收用户输入
Xamarin iOS教程之使用按钮接接收用户输入 Xamarin iOS使用按钮接接收用户输入 按钮是用户交互的最基础控件.即使是在iPhone或者iPad中,用户使用最多操作也是通过触摸实现点击. ...
- Xamarin iOS教程之编辑界面编写代码
Xamarin iOS教程之编辑界面编写代码 Xamarin iOS的Interface Builder Interface Builder被称为编辑界面.它是一个虚拟的图形化设计工具,用来为iOS应 ...
随机推荐
- sqoop的安装与配置
最近需要将MySQL的数据导出到HDFS,所以搜到了sqoop2.跟sqoop1相比,sqoop2的好处是直接使用程序连接到集群上的sqoop,远程操作.流程是需要先创建link也可以理解成要操作的对 ...
- OpenStack 存储服务 Cinder介绍和控制节点部署(十五)
Cinder介绍 OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和 ...
- UVA 12307 Smallest Enclosing Rectangle
https://vjudge.net/problem/UVA-12307 求覆盖所有点的最小矩形面积.周长 相当于求凸包的最小面积外接矩形.最小周长外接矩形 结论: 这个矩形一定有一条边和凸包上一条边 ...
- 【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(一) RTMP 命令详解
源码地址:https://github.com/Tinywan/PHP_Experience 说明: rtmp的延迟主要取决于播放器设置,但流式传输软件,流的比特率和网络速度(以及响应时间“ping” ...
- 【51Nod】1519 拆方块 贪心+递推
[题目]1519 拆方块 [题意]给定n个正整数,\(A_i\)表示第i堆叠了\(A_i\)个石子.每轮操作将至少有一面裸露的石子消除,问几轮所有石子均被消除.\(n \leq 10^5\). [算法 ...
- 线段树->面积并 Atlantis HDU - 1542
题目链接:https://cn.vjudge.net/problem/HDU-1542 题目大意:求面积并 具体思路:我们首先把矩形分割成一横条一横条的,然后对于每一个我们给定的矩形,我们将储存两个点 ...
- tar压缩文件排除文件夹【原创】
例如压缩redis-3.2.0目录,但是不想压缩redis-3.2.0下面的src目录 -. --exclude=redis-/src 注意--exclude=redis-3.2.0/src后面一定不 ...
- elasticsearch安装ik分词器(极速版)
简介:下面讲有我已经打包并且编辑过的zip包,你可以在下面下载即可. 1.下载zip包.elasticsearch-analysis-ik-1.8.0.jar下面有附件链接[ik-安装包.zip],下 ...
- Kali Linux没有声音的解决方法
Kali Linux系统默认状态下,root用户是无法使用声卡的,也就没有声音.启用的方法如下: (1)在终端执行命令:systemctl --user enable pulseaud ...
- javaScript对金额处理的方式
例如 var price = $("#price").val(); 此时price 为字符串格式 假使我们想将其乘以100 可以选择 price*100将其转换为数值格式 但是有些 ...