iOS控件之UIButton

創(chuàng)建

UIButton * btn = [[UIButton alloc] init];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
typedef NS_ENUM(NSInteger, UIButtonType) {
    UIButtonTypeCustom = 0,                         // 自定義按鈕
    UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0),  // 系統(tǒng)按鈕 iOS7以后圓角按鈕被 UIButtonTypeSystem 取代 兩者等同
    
    UIButtonTypeDetailDisclosure,                   // 藍(lán)色箭頭按鈕(用作詳
    UIButtonTypeInfoLight,                          // 亮色感嘆號按鈕
    UIButtonTypeInfoDark,                           // 深色感嘆號按鈕
    UIButtonTypeContactAdd,                         // 加號按鈕
    
    UIButtonTypeRoundedRect = UIButtonTypeSystem,   // Deprecated, use UIButtonTypeSystem instead
};

狀態(tài)

typedef NS_OPTIONS(NSUInteger, UIControlState) {
    UIControlStateNormal       = 0,       // 正常狀態(tài)
    UIControlStateHighlighted  = 1 << 0,  // 高亮狀態(tài)
    UIControlStateDisabled     = 1 << 1,  // 失效狀態(tài)
    UIControlStateSelected     = 1 << 2,  // 選中狀態(tài)
    UIControlStateFocused NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 3,  // 聚焦?fàn)顟B(tài) (iOS新加入 應(yīng)該和3D Touch有關(guān))
    UIControlStateApplication  = 0x00FF0000,    // 當(dāng)用做應(yīng)用標(biāo)志時(shí)
    UIControlStateReserved     = 0xFF000000     // 框架預(yù)留 無意義
};

屬性

// frame

btn.frame = CGRectMake(20, 20, 70, 30);

// 背景色

btn.backgroundColor = [UIColor redColor];

// 標(biāo)題

[btn setTitle:@"按鈕" forState:UIControlStateNormal]; // 標(biāo)題
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; // 標(biāo)題顏色
[btn setTitleShadowColor:[UIColor redColor] forState:UIControlStateNormal]; // 標(biāo)題陰影顏色

// 圖片

[btn setImage:[UIImage imageNamed:@"btnIcon"] forState:UIControlStateNormal]; // 不會(huì)被拉伸浅浮,原比例顯示
[btn setBackgroundImage:[UIImage imageNamed:@"btnBgImg"] forState:UIControlStateNormal]; // 會(huì)被拉伸照藻,充滿整個(gè)btn

// 間距

btn.contentEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);  // btn整體內(nèi)容四周的間距
btn.titleEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5); // 標(biāo)題四周間距
btn.imageEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5); // 圖片四周間距

// 設(shè)置高亮狀態(tài) 加深圖片顏色

btn.adjustsImageWhenHighlighted = NO; // 默認(rèn)為YES 設(shè)置為NO取消效果

// 設(shè)置失效狀態(tài) 加深圖片顏色

btn.adjustsImageWhenDisabled = NO; // 默認(rèn)為YES 設(shè)置NO取消效果

// 設(shè)置高亮狀態(tài) 按鈕發(fā)光

btn.showsTouchWhenHighlighted = YES; // 默認(rèn)為NO 

// 設(shè)置高亮狀態(tài) 是否改變陰影

btn. reversesTitleShadowWhenHighlighted = YES; // 默認(rèn)為NO 

事件

// 添加事件

[btn addTarget:self action:@selector(clickBtn:) forControlEvents:UIControlEventTouchUpInside];

// 事件狀態(tài)

typedef NS_OPTIONS(NSUInteger, UIControlEvents) {
    UIControlEventTouchDown         = 1 <<  0, // 按下
    UIControlEventTouchDownRepeat   = 1 <<  1, // 多次按下
    UIControlEventTouchDragInside   = 1 <<  2, // 保持按下,在按鈕及其一定的外圍拖動(dòng)
    UIControlEventTouchDragOutside  = 1 <<  3, // 保持按下,在按鈕外面拖動(dòng)
    UIControlEventTouchDragEnter    = 1 <<  4, // DragOutside進(jìn)入DragInside觸發(fā)
    UIControlEventTouchDragExit     = 1 <<  5, // DragInside到DragOutside觸發(fā)
    UIControlEventTouchUpInside     = 1 <<  6, // 按鈕及其一定外圍內(nèi)松開
    UIControlEventTouchUpOutside    = 1 <<  7, // 按鈕外面松開
    UIControlEventTouchCancel       = 1 <<  8, // 點(diǎn)擊取消
    
    ... ...
}

獲取

@property(nullable, nonatomic,readonly,strong) NSString *currentTitle;             // 當(dāng)前標(biāo)題
@property(nonatomic,readonly,strong) UIColor  *currentTitleColor;                  // 當(dāng)前標(biāo)題顏色
@property(nullable, nonatomic,readonly,strong) UIColor  *currentTitleShadowColor;  // 當(dāng)前標(biāo)題陰影顏色
@property(nullable, nonatomic,readonly,strong) UIImage  *currentImage;             // 當(dāng)前圖片
@property(nullable, nonatomic,readonly,strong) UIImage  *currentBackgroundImage;   // 當(dāng)前背景圖片
@property(nullable, nonatomic,readonly,strong) NSAttributedString *currentAttributedTitle NS_AVAILABLE_IOS(6_0);  // 當(dāng)前富文本標(biāo)題

@property(nullable, nonatomic,readonly,strong) UILabel     *titleLabel NS_AVAILABLE_IOS(3_0); // 當(dāng)前標(biāo)題UILabel
@property(nullable, nonatomic,readonly,strong) UIImageView *imageView  NS_AVAILABLE_IOS(3_0); // 當(dāng)前圖片UIImageView
- (CGRect)backgroundRectForBounds:(CGRect)bounds;      // 返回背景繪制區(qū)域
- (CGRect)contentRectForBounds:(CGRect)bounds;         // 返回內(nèi)容繪制區(qū)域
- (CGRect)titleRectForContentRect:(CGRect)contentRect; // 返回標(biāo)題繪制區(qū)域
- (CGRect)imageRectForContentRect:(CGRect)contentRect; // 返回圖片繪制區(qū)域

版權(quán)聲明:出自MajorLMJ技術(shù)博客的原創(chuàng)作品 撇眯,轉(zhuǎn)載時(shí)必須注明出處及相應(yīng)鏈接!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肘习,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惯退,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件从藤,死亡現(xiàn)場離奇詭異催跪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)夷野,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門懊蒸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人悯搔,你說我怎么就攤上這事骑丸。” “怎么了妒貌?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵通危,是天一觀的道長。 經(jīng)常有香客問我灌曙,道長菊碟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任平匈,我火速辦了婚禮框沟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘增炭。我一直安慰自己忍燥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布隙姿。 她就那樣靜靜地躺著梅垄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪输玷。 梳的紋絲不亂的頭發(fā)上队丝,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機(jī)與錄音欲鹏,去河邊找鬼机久。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赔嚎,可吹牛的內(nèi)容都是我干的膘盖。 我是一名探鬼主播胧弛,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼侠畔!你這毒婦竟也來了结缚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤软棺,失蹤者是張志新(化名)和其女友劉穎红竭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喘落,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茵宪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了揖盘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片眉厨。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖兽狭,靈堂內(nèi)的尸體忽然破棺而出憾股,到底是詐尸還是另有隱情,我是刑警寧澤箕慧,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布服球,位于F島的核電站,受9級特大地震影響颠焦,放射性物質(zhì)發(fā)生泄漏斩熊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一伐庭、第九天 我趴在偏房一處隱蔽的房頂上張望粉渠。 院中可真熱鬧,春花似錦圾另、人聲如沸霸株。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽去件。三九已至,卻和暖如春扰路,著一層夾襖步出監(jiān)牢的瞬間尤溜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工汗唱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留稼锅,地道東北人未荒。 一個(gè)月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓遍希,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肥印。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,170評論 25 707
  • 突如其來的幸福 下午沒課的時(shí)候在宿舍慵懶的拉上深藍(lán)的窗簾 開燈 泡杯淡茶 開始看書 偶爾開的小差 想想自己的父母安...
    眾人國士閱讀 268評論 0 0
  • 今天和同事聊天绝葡,說周末他去參加姨媽80歲生日宴,我說這么老啦腹鹉,你媽多大呀藏畅,他說64了,我立馬說你媽生你挺...
    happy張小靜閱讀 195評論 1 1
  • 文/倪慢慢 (一) 某個(gè)夜晚功咒。 “你知道嗎愉阎?我寫作最大的困境就是沒有場景和故事。我的頭腦里最多的是情緒和感受力奋,卻難...
    倪慢慢ing閱讀 325評論 0 0
  • 姓名:王燕 日精進(jìn)打卡第3天 【打卡始于2017.10.14持續(xù)于2017.10.17】 【知~學(xué)習(xí)】 ...
    雁孜閱讀 309評論 0 1