文档章节

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

大学霸
 大学霸
发布于 2015/06/16 16:19
字数 1909
阅读 437
收藏 0

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

Xamarin iOS使用按钮接接收用户输入

按钮是用户交互的最基础控件。即使是在iPhone或者iPad中,用户使用最多操作也是通过触摸实现点击。而点击操作最多的控件往往是按钮控件。一般使用UIButton类来实现按钮。本节将主要讲解按钮相关的内容。

Xamarin iOS使用代码添加按钮

由于按钮拖放的方式比较简单,所以不再介绍。这里直接讲解代码中如何添加按钮。使用代码为主视图添加一个按钮的方式和在2.2.2节中讲解的步骤是一样的。首先需要使用UIButton类实例化一个按钮对象,然后是设置位置和大小,最后是使用AddSubview()方法将按钮对象添加到主视图中。(由于视图的添加方式都一样,后面将省略使用代码添加视图这块内容。)。

【示例2-5】以下将使用代码为主视图添加一个青色的按钮。代码如下:

  • using System;

  • using System.Drawing;

  • using MonoTouch.Foundation;

  • using MonoTouch.UIKit;

  • namespace Application

  • {

  •          public partial class __16ViewController : UIViewController

  •          {

  • ……                   //这里省略了视图控制器的构造方法和析构方法

  •                    #region View lifecycle

  •                    public override void ViewDidLoad ()

  •                    {

  •                             base.ViewDidLoad ();

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

  •                             UIButton button = new UIButton ();                                      //实例化按钮对象

  •                             button.Frame = new RectangleF (120, 261, 80, 30);                 //设置按钮对象的位置和大小

  •                             button.BackgroundColor = UIColor.Cyan;                                   //设置按钮对象的背景颜色

  •                             this.View.AddSubview (button);                                                     //将按钮对象添加到主视图中

  •                    }

  •               ……                   //这里省略了视图加载和卸载前后的一些方法

  •                    #endregion

  •          }

  • }

运行效果如图2.13所示。


2.13  运行效果

注意:由于按钮视图继承了UIView类,所以它继承了UIView类中的属性和方法。

Xamarin iOS按钮的格式化设置

在图2.13中可以看到,明明是添加了一个按钮,但是就和添加了一个空白视图一样,为了让按钮和空白视图区别开,需要对按钮进行一些设置。

1.设置按钮的外观

外观是直接区别按钮和其他视图的手段。如果是使用Interface Builder添加的按钮,它的外观设置方式有两种,一种是直接打开属性界面,对按钮外观的进行设置,如图2.14所示。

2.14  按钮的设置

另一种就是使用代码对按钮的外观进行设置。这一种方式适用于使用代码添加的按钮中。表2-2列出了常用的一些外观设置属性。

2-2  常用属性

【示例2-6】下面将在主视图中添加一个按钮。此按钮的标题为I am button,标题的颜色为黑色。代码如下:

  • using System;

  • using System.Drawing;

  • using MonoTouch.Foundation;

  • using MonoTouch.UIKit;

  • namespace Application

  • {

  •          public partial class __18ViewController : UIViewController

  •          {

  •                    ……                    //这里省略了视图控制器的构造方法和析构方法

  •                    #region View lifecycle

  •                    public override void ViewDidLoad ()

  •                    {

  •                             base.ViewDidLoad ();

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

  •                             UIButton button = new UIButton ();

  •                             button.Frame = new RectangleF (107, 269, 120, 30);

  •                             button.SetTitle ("I am button", UIControlState.Normal);                   //设置按钮的标题

  •                             button.SetTitleColor (UIColor.Black, UIControlState.Normal);       //设置按钮的标题颜色

  •                             this.View.AddSubview (button);

  •                    }

  • ……                     //这里省略了视图加载和卸载前后的一些方法

  • #endregion

  •          }

  • }

运行效果如图2.15所示。

2.15  运行效果

2.设置按钮的状态

在示例2-6中,设置按钮的标题和颜色时,需要对按钮的状态进行设置,表示按钮在某一状态下的标题和标题颜色是什么样子。例如,UIControlState.Normal就表示按钮的一种状态。对于像按钮的这类视图,即可以接受用户输入的视图也被称为控件。这些控件都有自己的状态。表2-3就为开发者详细介绍了控件的状态。

2-3  控件的状态

3.设置按钮的类型

按钮的形式是多种多样的。例如,在通讯录中,添加新联系人的按钮是一个加号;查看来电的详细信息时是一个感叹号等。这些按钮的实现,可以在实例化按钮对象时使用UIButtonType来实现。UIButtonType中的内容如表2-4所示。

2-4  UIButtonType的内容

【示例2-7】以下代码将设置两个不同风格的按钮。代码如下:

  • using System;

  • using System.Drawing;

  • using MonoTouch.Foundation;

  • using MonoTouch.UIKit;

  • namespace Application

  • {

  •          public partial class __19ViewController : UIViewController

  •          {

  •                    ……                    //这里省略了视图控制器的构造方法和析构方法

  •                    #region View lifecycle

  •                    public override void ViewDidLoad ()

  •                    {

  •                             base.ViewDidLoad ();

  •                            

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

  • //实例化按钮对象并设置按钮的类型

  •                         UIButton button1 = new UIButton (UIButtonType.DetailDisclosure);                      

  • button1.Center = new PointF (160, 150);                              //设置按钮的中心位置

  •                             this.View.AddSubview (button1);

  • //实例化按钮对象并设置按钮的类型

  •                             UIButton button2 = new UIButton (UIButtonType.ContactAdd);

  •                             button2.Center = new PointF (160, 350);                              //设置按钮的中心位置

  •                             this.View.AddSubview (button2);

  •                    }

  • ……                   //这里省略了视图加载和卸载前后的一些方法

  •                    #endregion

  •          }

  • }

运行效果如图2.16所示。

2.16  运行效果

4.设置按钮的发光效果

发光的按钮开发者可能在很多的地方遇到过,它的实现其实很简单,就是使用了ShowsTouchWhenHighlighted属性来实现的。

【示例2-8】以下代码将实现一个发光的按钮。代码如下:

  • using System;

  • using System.Drawing;

  • using MonoTouch.Foundation;

  • using MonoTouch.UIKit;

  • namespace Application

  • {

  •          public partial class __17ViewController : UIViewController

  •          {

  •                    ……                    //这里省略了视图加载和卸载前后的一些方法

  •                    #region View lifecycle

  •                    public override void ViewDidLoad ()

  •                    {

  •                             base.ViewDidLoad ();

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

  •                             UIButton button = new UIButton ();

  •                             button.Frame = new RectangleF (137, 269, 46, 30);

  •                             button.SetTitle ("Hello", UIControlState.Normal);

  •                             this.View.AddSubview (button);

  •                             button.ShowsTouchWhenHighlighted = true;                             //按钮发光的设置

  •                    }

  • ……                     //这里省略了视图加载和卸载前后的一些方法

  •                    #endregion

  •          }

  • }

运行效果如图2.17所示。

2.17  运行效果

Xamarin iOS按钮的响应

以上讲解了按钮的格式化设置。作为按钮,最重要的功能就是实现和用户的响应工作。它的实现事件是TouchUpInside。其语法形式如下:

  • 按钮对象.TouchUpInside +=触摸按钮后的方法;

或者是:

  • 按钮对象名.TouchUpInside +=(sender,e)=>{

  •                    ……

  • };

其中,sender表示事件监视的对象,e就是事件所需要的数据。

【示例2-9以下就为开发者实现了按钮的响应。当用户触摸按钮后,主视图就会变色。代码如下:

  • using System;

  • using System.Drawing;

  • using MonoTouch.Foundation;

  • using MonoTouch.UIKit;

  • namespace Application

  • {

  •          public partial class __3ViewController : UIViewController

  •          {

  •                    UIButton buttonChangeColor;

  •                    bool isYellow;

  •                    ……                    //这里省略了视图控制器的构造方法和析构方法

  •                    #region View lifecycle

  •          //创建按钮buttonChangeColor

  •                    private void CreateButton ()

  •                    {

  •                             RectangleF viewFrame = this.View.Frame;

  •                             RectangleF buttonFrame = new RectangleF (10f, viewFrame.Bottom - 200f,

  • viewFrame.Width - 20f, 50f);

  •                             this.buttonChangeColor = UIButton.FromType (UIButtonType.System);          //实例化对象

  •               //对按钮的格式化设置

  •                             this.buttonChangeColor.Frame = buttonFrame;

  •                             this.buttonChangeColor.SetTitle ("Tap to change view color", UIControlState.Normal);

  •                             this.buttonChangeColor.SetTitle ("Changing color...", UIControlState.Highlighted);

  •               //实现响应

  •                             this.buttonChangeColor.TouchUpInside += this.ButtonChangeColor_TouchUpInside;

  •                             this.View.AddSubview (this.buttonChangeColor);

  •                     }

  •          //实现触摸按钮后改变主视图的背景颜色

  •                    private void ButtonChangeColor_TouchUpInside (object sender, EventArgs e)

  •                    {

  •                             if (isYellow) {

  •                                      this.View.BackgroundColor = UIColor.LightGray;

  •                                      isYellow = false;

  •                             } else {

  •                                      this.View.BackgroundColor = UIColor.Yellow;

  •                                      isYellow = true;

  •                             }

  •                    }

  •                    public override void ViewDidLoad ()

  •                    {

  •                             base.ViewDidLoad ();

  •                            

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

  •                             this.CreateButton ();                                                      //调用CreateButton()方法

  •                    }

  • ……                     //这里省略了视图加载和卸载前后的一些方法

  •                    #endregion

  •          }

  • }

在此程序中,有一个isYellow,它是一个布尔类型的变量,当此变量为true时,将主视图的背景改为浅灰色。当此变量为false时,将主视图的背景改为黄色。运行效果如图2.18所示。

2.18  运行效果

本文选自:Xamarin iOS开发实战大学霸内部资料,转载请注明出处,尊重技术尊重IT人!


© 著作权归作者所有

共有 人打赏支持
大学霸
粉丝 261
博文 881
码字总数 552306
作品 0
东城
程序员
私信 提问
Xamarin iOS教程之申请付费开发者账号下载证书

Xamarin iOS教程之申请付费开发者账号下载证书 Xamarin iOS使用真机测试应用程序 在讲解iOS Simulator时,已经提到了虽然iOS Simulator可以模仿真实的设备,但是还是有很多的缺陷,如打电话、...

大学霸
2015/06/12
0
0
Xamarin iOS教程之键盘的使用和设置

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

大学霸
2015/06/19
0
0
Xamarin iOS编写第一个应用程序创建工程

Xamarin iOS编写第一个应用程序创建工程 在Xcode以及Xamarin安装好后,就可以在Xamarin Studio中编写程序了。本节将主要讲解在Xamarin Studio中如何进行工程的创建以及编写代码等内容Xamarin...

大学霸
2015/01/22
0
0
Xamarin iOS开发中的编辑、连接、运行

Xamarin iOS开发中的编辑、连接、运行 创建好工程后,就可以单击Xamarin Studio上方的运行按钮,如图1.37所示,对HelloWorld项目进行编辑、连接以及运行了。运行效果如图1.38所示本文选自Xam...

大学霸
2015/03/17
0
0
Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序

Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序 C#原本是用来编写Windows以及Windows Phone的应用程序。自从Xamarin问世后,C#的作用就发生了很大的变化。它不仅可以编写关于Windows...

大学霸
2014/10/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《货币商人》读后感作文选登3800字

《货币商人》读后感作文选登3800字: 领导之法、管理之术的大智慧与小技巧(宝安支行纪委书记葛希) 非常感谢夏书记向我们推荐了这本《货币商人》。这本书我读第一遍时惊现它像一个宝藏,蕴藏...

原创小博客
4分钟前
0
0
面试之ssm粗略简答

说实在的,spring源码对我来说可能就是报错的时候会一个个点进去找错误源头,其他都是为了让自己学习大神们优秀的编程思想和理念(顺便面试的时候吹吹牛皮~) 这次zhjj就直接抛了一个范围很...

无极之岚
6分钟前
0
0
史上最强Dubbo面试25题含答案详解:核心组件+架构设计+服务治理等

1.Dubbo是什么? Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。 RPC 指的是远程调用协议,也就是说两...

mikechen优知
29分钟前
0
0
如何正确的选择云数据库?

本文由云+社区发表 作者:数据库 江湖传说在选择和使用云数据库过程中 10个人有9个会遇到以下问题: 数据库正常使用过程中莫名卡顿 经常遭遇主从延迟和主从不一致 不知如何实现无损跨云跨数据...

腾讯云加社区
30分钟前
0
0
虚拟机下centos7.x简易命令大全与试玩体验

OS: liunx version: centos7.x date: 2019-01-18 1. cd / : 进入服务器根目录 2. cd .. : 进入当前目录的上一级 3. ls : 显示当前目录下的所有文件夹或文件(list的缩写) 4. ip addr : 展示服...

皇冠小丑
41分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部