iOS UI基礎控制項之UIButton

2021-08-21 03:45:08 字數 3831 閱讀 2918

uibutton 是乙個非常實用的控制項,在我們以後的開發生涯中他是不可或缺的。

下面我們一起來學習uibutton吧!!!

uibutton是乙個可以相應事件的控制項,因此他的直接父類是uicontrol而不是uiview。總所周知所有能顯示資料的都是uiview,所以我的按鈕他也是乙個uiview,只不過是通過uicontrol繼承而來的。

物件的建立

uibutton *btn = [uibutton buttonwithtype:uibuttontypesystem];

btn.frame = cgrectmake(50, 300, 50, 50);

[self.view addsubview:btn];

uibutton和其他的檢視不一樣,因此他的建立不是簡單的alloc init,而需要通過類方法buttonwithtype:來建立。這個方法接收的是乙個按鈕樣式的列舉值,根據不同的列舉,建立不同樣式的按鈕;樣式列舉詳解如下:

typedef

ns_enum(nsinteger, uibuttontype) ;

因為使用的是方法建立的,在建立的過程中沒有設定frame,所以我們在建立後一定要自己手動設定按鈕的frame,這個是必不可少的,frame很容易遺忘,所以大家要多注意下,少了frame按鈕將不顯示

設定button的標題

對於按鈕的標題不能通過屬性直接設定,我們需要使用方法來設定;因為按鈕他具有不同的狀態,在不同的狀態下標題也不一樣,使用-settitle: forstate:方法來設定在不同狀態下對應的標題,如下:

[btn settitle:@"點我呀" forstate:uicontrolstatenormal];
uicontrolstatenormal是乙個列舉型別uicontrolstate的列舉值, 代表的是按鈕在普通狀態, 該列舉的所有成員如下:

typedef

ns_options(nsuinteger, uicontrolstate) ;

對於以上幾種狀態大家最好去一一試試,看看效果,只有試過,才能更理解

按鈕標題相關

//標題文字顏色

[btn settitlecolor:[uicolor redcolor] forstate:uicontrolstatenormal];

//標題陰影顏色

[btn settitleshadowcolor:[uicolor redcolor] forstate:uicontrolstatenormal];

//獲取某種狀態下的標題

nsstring *titlestr = [btn titleforstate:uicontrolstateselected];

手動設定按鈕的選中狀態
btn.selected = no;
設定按鈕的背景顏色
btn.backgroundcolor = [uicolor redcolor];
設定按鈕
//設定按鈕前景---不會被拉伸,原比例顯示, 會遮住按鈕標題

[btn setimage:[uiimage imagenamed:@"btnicon"] forstate:uicontrolstatenormal];

// 設定按鈕背景---會被拉伸,充滿整個btn, 按鈕標題會顯示在之上

[btn setbackgroundimage:[uiimage imagenamed:@"btnbgimg"] forstate:uicontrolstatenormal];

設定按鈕的相關間距
//btn整體內容四周的間距

btn.contentedgeinsets = uiedgeinsetsmake(15, 15, 15, 15);

//標題四周間距

btn.titleedgeinsets = uiedgeinsetsmake(15, 15, 15, 15);

//四周間距

btn.imageedgeinsets = uiedgeinsetsmake(15, 15, 15, 15);

新增按鈕響應事件
//target: 執行者

//action:被執行的方法

//events:事件

//當按鈕的的事件被觸發時,呼叫執行者的被執行方法--[self clickbtn:btn]

[btn addtarget:self action:@selector(clickbtn:) forcontrolevents:uicontroleventtouchupinside];

刪除按鈕響應事件
//刪除的引數必須要新增時候的引數一樣,否則刪除不能成功

[btn removetarget:self action:@selector(clickbtn:) forcontrolevents:uicontroleventtouchupinside];

事件狀態詳解

uicontroleventtouchdown

單點觸控按下事件:使用者點觸螢幕,或者又有新手指落下的時候。

uicontroleventtouchdownrepeat

多點觸控按下事件,點觸計數大於1:使用者按下第

二、三、或第四根手指的時候。

uicontroleventtouchdraginside

當一次觸控在控制項視窗內拖動時。

uicontroleventtouchdragoutside

當一次觸控在控制項視窗之外拖動時。

uicontroleventtouchdragenter

當一次觸控從控制項視窗之外拖動到內部時。

uicontroleventtouchdragexit

當一次觸控從控制項視窗內部拖動到外部時。

uicontroleventtouchupinside

所有在控制項之內觸控抬起事,一般用於按鈕。

uicontroleventtouchupoutside

所有在控制項之外觸控抬起事件(點觸必須開始與控制項內部才會傳送通知)。

uicontroleventtouchcancel

所有觸控取消事件,即一次觸控因為放上了太多手指而被取消,或者被上鎖或者**呼叫打斷。

uicontroleventtouchchanged

當控制項的值發生改變時,傳送通知。用於滑塊、分段控制項、以及其他取值的控制項。你可以配置滑塊控制項何時傳送通知,在滑塊被放下時傳送,或者在被拖動時傳送。

uicontroleventeditingdidbegin

當文字控制項中開始編輯時傳送通知。

uicontroleventeditingchanged

當文字控制項中的文字被改變時傳送通知。

uicontroleventeditingdidend

當文字控制項中編輯結束時傳送通知。

uicontroleventeditingdidonexit

當文字控制項內通過按下回車鍵(或等價行為)結束編輯時,傳送通知。

uicontroleventalltouchevents

通知所有觸控事件。

uicontroleventalleditingevents

通知所有關於文字編輯的事件。

uicontroleventallevents

通知所有事件。

iOS UI控制項之UIButton

恢復內容開始 狀態 uicontrolevents 的取值 typedef ns options nsuinteger,uicontrolevents 設定button內部文字和的方法 void settitle nsstring title forstate uicontrolstate stat...

iOS UI 基本控制項之UISwitch

uiswitch 開關,預設為關 ios開發中必不可少的基本控制項,主要用於只有兩種的選擇,比如飛行模式等等,本文主要是列出常用的屬性及方法 注xcode版本為7.2 預設狀態 屬性 property nullable nonatomic strong uicolor ontintcolor 開著的...

IOS UI控制項 label

ui uesr inte ce 使用者介面 ui設計是指對軟體的人機互動 操作邏輯 介面美化的完整設計。ui處於ios四層結構的最上層 cocoa touch 並且放置於uikit框架下。uilabel 1.基本屬性 void dealloc 建立乙個label方法 void createlabel...