Xamarin iOS教程之使用按鈕接接收使用者輸入
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人!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-1701421/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iOS 11開發教程(十七)iOS11應用檢視之使用按鈕接收使用者輸入iOS
- Xamarin iOS教程之警告檢視iOS
- Xamarin iOS教程之鍵盤的使用和設定iOS
- iOS 按鈕動畫iOS動畫
- Xamarin iOS教程之自定義檢視iOS
- Android輸入框中加入清除按鈕Android
- iOS動畫-按鈕動畫iOS動畫
- iOS --按鈕 處理iOS
- 輸入框點選按鈕清除輸入的所有字元的封裝字元封裝
- Xamarin iOS教程之頁面控制元件iOS控制元件
- Xamarin iOS教程之檢視顯示影像iOS
- Pew:川普就職後“憤怒”按鈕成Facebook使用者使用最多的按鈕
- Xamarin iOS教程之顯示和編輯文字iOS
- Xamarin iOS教程之新增和定製檢視iOS
- iOS 程式碼限制textField的輸入長度並且刪除按鈕還得有效iOS
- 2.11Python基礎語法(9):接收使用者輸入Python
- 帶燈LED按鈕開關接線方法
- Xamarin iOS教程之編輯介面編寫程式碼iOS
- JAVA 接收鍵盤輸入Java
- Xamarin iOS教程之進度條和滾動檢視iOS
- iOS 自定義鍵盤字母按鈕iOS
- 換個按鈕顏色, 就能增長百萬使用者?
- 分享按鈕再設計:如何讓使用者喜歡
- 按鈕上面的按鈕 (轉)
- VUE 實現 Studio 管理後臺(十三):按鈕點選輸入控制元件,input 輸入框系列Vue控制元件
- 按鈕
- iOS 11開發教程(二十)iOS11應用檢視美化按鈕之設定按鈕的狀態iOS
- iOS 11開發教程(十九)iOS11應用檢視美化按鈕之設定按鈕的外觀iOS
- 使用WPF建立炫亮按鈕
- iOS 左滑按鈕(UITableViewRowAction)顯示圖片iOSUIView
- iOS隱藏導航欄的返回按鈕iOS
- QT中使用Event Filter監聽按鈕事件,Release後按鈕不見QTFilter事件
- Xamarin iOS教程之申請付費開發者賬號下載證書iOS
- Qt更改按鈕樣式 (以QSpinBox使用左右按鈕樣式為例)QT
- Android入門教程 | EditText 使用者輸入Android
- 教學影片:如何在Silveright當中建立按鈕
- 按鈕禁用
- Bootstrap 按鈕boot