一、建立
兩種方法:
1. 常規的 initwithframe
uibutton *btn1 = [[uibutton alloc]initwithframe:cgrectmake(10, 10, 80, 44)];
對**建立view(uicontrol繼承自uiview,所以也是view)不甚了解的請參看:《有關view的幾個基礎知識點》
2. uibutton 的乙個類方法(也可以說是靜態方法)buttonwithtype
uibutton *btn2 = [uibutton buttonwithtype:uibuttontyperoundedrect];
風格有如下
typedef enum uibuttontype;
二、設定屬性
1.frame屬性
第2種方法建立按鈕後你可以給按鈕的frame屬性賦值,用乙個cgrect結構設定他的位置和大小
cgrect btn2frame = cgrectmake(10.0, 10.0, 60.0, 44.0);
btn2.frame =btn2frame;
2. 屬性
對於任何特定狀態下的按鈕,都可以設定該按鈕該狀態下的按鈕標題。用settitle 方法 設定即可:
[btn1 settitle:@"btn1" forstate:uicontrolstatenormal];
你也可以為按鈕的某一狀態設定為圖。用 setimage 即可:
[btn2 setimage:[uiimage imagenamed:@"pic"] forstate:uicontrolstatenormal];
此外,你還可以為每種按鈕狀態設定標題的顏色和陰影,以及按鈕的背景。方法 settitlecolor 和 settitleshadowcolor 都需要乙個uicolor物件做引數:
[btn1 settitlecolor:[uicolor redcolor] forstate:uicontrolstatenormal]; //設定標題顏色
[btn1 settitleshadowcolor:[uicolor graycolor] forstate:uicontrolstatenormal ]; //陰影
[btn1 setbackgroundimage:[uiimage imagenamed:@"pic"] forstate:uicontrolstatehighlighted]; //背景影象
上面幾個方法都提到 共同的引數 forstate . 這個引數決定了標題、影象或其他屬性將在何種狀態下顯現。你可以程式設計令按鈕在那個狀態變化
enum ;
typedef nsuinteger uicontrolstate;
你只要掌握前四種狀態就好了。
當按鈕高亮或者禁用,uibutton 類可以調整自己的外觀,下面幾個屬性可以讓你按照需要對按鈕的外觀進行微調:
adjustsimagewhenhighlighted
預設情況下,在按鈕被禁用時,影象會被畫的顏色深一些。要禁用此功能,請將這個屬性設定為no:
btn1.adjustsimagewhenhighlighted = no;
adjustsimagewhendisabled
預設情況下,按鈕在被禁用時,影象會被畫的顏色淡一些。要禁用此功能,請將這個屬性設定為no:
btn1.adjustsimagewhendisabled = no;
showstouchwhenhighlighted
這個屬性設定為yes,可令按鈕在按下時發光。這可以用於資訊按鈕或者有些重要的按鈕:
btn1.showstouchwhenhighlighted = yes;
三、顯示控制項
顯示控制項一如繼往的簡單:
[self.view addsubview:btn1];
[self.view addsubview:btn2];
四、重寫繪製行為
你可以通過子類化按鈕來定製屬於你自己的按鈕類。在子類化的時候你可以過載下面這些方法,這些方法返回cgrect結構,指明了按鈕每一組成部分的邊界。
注意:不要直接呼叫這些方法, 這些方法是你寫給系統呼叫的。
backgroundrectforbounds //指定背景邊界
contentrectforbounds // 指定內容邊界
titlerectforcontentrect // 指定文字標題邊界
imagerectforcontentrect //指定按鈕影象邊界 例:
- (cgrect)imagerectforcontentrect:(cgrect)bounds
五、新增動作
按鈕是用來幹嘛的?用來激發某個動作或事件的。那我們我們要為他新增乙個動作,與 uicontrol 裡講的一樣:
[btn1 addtarget:self action:@selector(btnpressed:) forcontrolevents:uicontroleventtouchupinside];
-(void)btnpressed:(id)sender
UIButton 使用大全
為自定義的btn 設定 響應方法 btnwyqzl addtarget selfaction selector btnwyqzlclicked forcontrolevents uicontroleventtouchupinside btnwyqzlclicked 在.h 檔案中的宣告如下 ibac...
全面解析Redis
關係型資料庫在處理海量資料和高併發等技術的時候不是太友善,因此有人提出非關係型資料庫 所以有了基於對關係型資料庫的補充nosql 目前具有的特點 1 可擴充,可伸縮 2 大量資料下的高效能 redis能讀的速度是110000次 s,寫的速度是81000次 s 3 靈活的資料模型 4 高可用 redi...
全面解析Ajax和jsonp使用總結
前言 ajax和jsonp可以與後台通訊,獲取資料和資訊,但是又不用重新整理整個頁面,實現頁面的區域性重新整理。一 ajax 定義 一種傳送http請求與後台進行非同步通訊的技術。原理 例項化xmlhttp物件,使用此物件與後台通訊。ajax的同源策略 ajax請求的頁面或資源只能是同乙個域下面的資...