UIButton - 按鈕
作為 幾乎所有頁面的常客,也稍微寫一點東東,留下一點內容。(UIButton 繼承自 UIControl,下次在研究哦)
基礎建立 與 屬性
// 建立一般使用 類方法,
self.testButton = [UIButton buttonWithType:UIButtonTypeCustom];
// 設定一些 屬性,並對應幾個狀態
[self.testButton setTitle:@"點選測試" forState:UIControlStateNormal];
[self.testButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[self.testButton setTitleShadowColor:[UIColor greenColor] forState:UIControlStateNormal];
[self.testButton setImage:[UIImage imageNamed:@"jpg_test"] forState:UIControlStateNormal];
[self.testButton setBackgroundImage:[UIImage imageNamed:@"jpg_test"] forState:UIControlStateHighlighted];
// 屬性字串 需要的話看另一篇 Foundation 中的 NSAttributedString 篇。
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:@"testAttributed" attributes:@{NSForegroundColorAttributeName:[UIColor blueColor],NSUnderlineStyleAttributeName:@(1)}];
[self.testButton setAttributedTitle:attributedString forState:UIControlStateHighlighted];
- 對應設定的屬性,反過來也可以獲取到屬性內容
只舉一個例子,其他的返三吧。
// 對應狀態的 title
NSString *testButtonTitle = [self.testButton titleForState:UIControlStateNormal];
// 當前的 title
NSString *testButtonCurrentTitle = [self.testButton currentTitle];
狀態 - UIControlState 簡單說明
注意:UIControlState 是 NS_OPTIONS 型別,所以注意下面第四個 比較特殊。在貼圖片,而且會正常-選中 切換是可能會用到哦。
[self.testButton setTitle:@"正常時" forState:UIControlStateNormal];
[self.testButton setTitle:@"選中時" forState:UIControlStateSelected];
[self.testButton setTitle:@"正常 高亮狀態" forState:UIControlStateHighlighted];
[self.testButton setTitle:@"選中時 高亮狀態" forState:UIControlStateHighlighted | UIControlStateSelected];
內容位置調整 - UIEdgeInsets
- 1 對button 的title 或者 image ,其一設定 UIEdgeInsets 時,比較方便好用。
- 2 但是,由於 button 帶有 title 和 image 2個屬性,同時存在時,調整這兩個屬性用 UIEdgeInsets 不是很好用。他們2個本身就有一定的調整,而且與image 大小與button大小也有一定關係,推薦使用重繪。
[self.testButton setTitleEdgeInsets:UIEdgeInsetsMake(10, 20, 30, 40)];
// 簡單調整 title 位置
// 關於位置調整偏移 檢視 UIKit - UIGeometry.h 類。
UIEdgeInsets- 重繪
- (CGRect)backgroundRectForBounds:(CGRect)bounds;
- (CGRect)contentRectForBounds:(CGRect)bounds;
- (CGRect)titleRectForContentRect:(CGRect)contentRect;
- (CGRect)imageRectForContentRect:(CGRect)contentRect;
簡單舉例:上面 2/3 是圖片,下面1/3 是文字
- (CGRect)titleRectForContentRect:(CGRect)contentRect {
return CGRectMake(0, 0, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds) * 2 / 3);
}
- (CGRect)imageRectForContentRect:(CGRect)contentRect {
return CGRectMake(0, CGRectGetHeight(self.bounds) * 2 / 3, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds) / 3);
}
其他
self.testButton.reversesTitleShadowWhenHighlighted = YES;// 文字陰影 高亮時反向
self.testButton.showsTouchWhenHighlighted = YES; // 觸控 有 亮光
self.testButton.adjustsImageWhenHighlighted = NO; // 圖片 點選 不變灰
self.testButton.adjustsImageWhenDisabled = NO; // 圖片 失效 不變灰
addTarget:action:為啥木有?? 在 UIControl 類,另講。
相關文章
- UIButton(用按鈕中的文字大小來動態設定按鈕的尺寸)UI
- ios 學習筆記(8) 控制元件 按鈕(UIButton)的使用方法iOS筆記控制元件UI
- 按鈕上面的按鈕 (轉)
- 按鈕
- 按鈕禁用
- Bootstrap 按鈕boot
- Fiori Elements List Report table 裡的普通按鈕,Global 按鈕 和 Determining 按鈕
- 窗體(文字框,按鈕,單選按鈕,標籤)
- 小程式按鈕
- Flutter Button(按鈕)Flutter
- iOS 按鈕動畫iOS動畫
- 復飛按鈕
- 新增按鈕事件事件
- div按鈕CSSCSS
- iOS面向切面程式設計筆記:UIButton按鈕防連點、NSArray陣列越界、資料打點iOS程式設計筆記UI陣列
- VBA命令按鈕操作
- vue 封裝按鈕Vue封裝
- HTML input image按鈕HTML
- HTML input image 按鈕HTML
- HTML input button按鈕HTML
- HTML input button 按鈕HTML
- 瞭解下Foundation 按鈕
- HTML input submit 按鈕HTMLMIT
- iOS動畫-按鈕動畫iOS動畫
- 凸出按鈕的TabBartabBar
- 按鈕拖拽移動
- iOS --按鈕 處理iOS
- VB “秒錶”窗體中有兩個按鈕“開始/停止”按鈕
- ABAP ALV TOOLBAR 自定義按鈕的型別以及listmenu按鈕型別
- 乾貨!必看創意按鈕設計,打造真正的按鈕誘惑
- QT中使用Event Filter監聽按鈕事件,Release後按鈕不見QTFilter事件
- InstaMaterial概念設計(3):feed卡片上的按鈕、評論按鈕
- Tkinter (02) 按鈕部件 Button
- HTML input reset 重置按鈕HTML
- 按鈕式超連結
- flutter demo (二):禁用按鈕Flutter
- JFrame容器和JButton按鈕
- 仿抖音點贊按鈕