IOS開發UI基礎之UIButton

來源:互聯網
上載者:User

標籤:

什麼是按鈕?

 

出現的一系列的都是按鈕,一般我們在做項目的時候判斷按鈕的標準是: 當點擊的時候能夠做出相應反應的一般都是按鈕

按鈕的功能能比較多:既能顯示文字 又能顯示圖片 而且我們還可以自訂按鈕 調整圖片和文字的位置和相片順序

我們一般建立按鈕在storyboard裡面直接拖一個按鈕 其實storyboard本質還是將我們設定的一些屬性轉換成為代碼UIButton的狀態

  • 普通狀態(normal)
  1. 預設情況(Default)
  2. 對應的枚舉常量為UIControlStateNormal
  • 高亮狀態(highlighted)
  1. 按鈕被按下去的時候手指還沒有鬆開的時候的狀態
  2. 對應的枚舉常量 UIControlStateHighlighted
  • 不可用狀態(disabled)
  1. 如果設定了按鈕的Enabled 屬性為NO  就是處於不可用(disable)狀態 表示按鈕不可以被點擊
  2. 對應的枚舉常量UIControlStateDisabled
  • 選中狀態 (selected)
  1. 當按鈕被選中之後 顯示的狀態
  2. 對應的枚舉常量UIControlStateSelected
設定按鈕的背景圖片
  • 設定按鈕在不同狀態下得背景圖片 注意:為了保證高亮狀態下的圖片正常顯示 必須設定按鈕的type為custom
按鈕的樣式使用代碼建立按鈕

UIButton的類型
  • UIButtonTypeCustom            //自訂類型
  • UIButtonTypeRoundedRect       //圓角類型
  • UIButtonTypeDetailDisclosure   //細節展示按鈕
  • UIButtonTypeInfoLight          //淺色背景的資訊按鈕
  • UIButtonTypeInfoDark           //暗色背景的資訊按鈕
  • UIButtonTypeContactAdd         // 添加按鈕

 

UIButton常用屬性

 

//設定對應狀態的標題內容- (void)setTitle:(NSString *)title forState:(UIControlState)state;    //  表示按鈕的狀態   這個上面已經介紹過//設定對應狀態的標題顏色          - (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;  //設定對應狀態的標題陰影顏色           - (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state;          //設定對應狀態的按鈕的圖片- (void)setImage:(UIImage *)image forState:(UIControlState)state;        //設定對應狀態的按鈕背景圖片- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;

 

 

 

注意:

給按鈕設定文字時,蘋果文檔說明,不能使用label對象設定文字的顏色或者陰影顏色,相反必須使用setTitleColor:forState: and setTitleShadowColor:forState:這兩個方法才能修改這些值。

為按鈕添加事件

為按鈕添加事件 用以下方法

添加事件- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;這些事件都是基於觸摸、基於值、基於編輯。有如下事件會觸發。在點擊按鈕是按鈕是凹下去,然後彈起才觸發起事件,

按鈕的事件狀態有以下幾種:

  •     UIControlEventTouchDown      // 按下   
  •         UIControlEventTouchDownRepeat  多次按下  
  •         UIControlEventTouchUpInside // 在按鈕及其一定外圍內鬆開
  •         UIControlEventTouchUpOutside // 按鈕外面鬆開

 

其他屬性

adjustsImageWhenDisabled     當按鈕禁用的情況下,映像的顏色會被畫深一點,預設為YES。

adjustsImageWhenHighlighted   當按鈕高亮的情況下,映像的顏色會被畫深一點,預設為YES。

showsTouchWhenHighlighted    如果設定為YES  點擊時的閃光效果會被前景圖片遮住中間部分;

contentEdgeInsets    設定按鈕的內部內容(包含按鈕圖片和標題)離按鈕邊緣上下左右的距離。

說到contentEdgeInset不得不說下下面兩個屬性:

疑難問題

有些時候我們想讓UIButton的title居靠左對齊,我們設定 ?btn.textLabel.textAlignment = UITextAlignmentLeft 是沒有作用的

我們需要設定  btn.contentHorizontalAlignment = UIControlContentHorizonAlignmentLeft;

但是問題又出來,此時文字會緊貼到左邊框,我們可以設定  btn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0); 使文字距離左邊框保持10個像素的距離。

好了今天 就分享到這裡了  如果你有更好的建議 請留言評論! 謝謝支援

IOS開發UI基礎之UIButton

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.