UIButton用法及相關屬性

1,UIButton初始化

 

         (1)initWithFrame

                 UIButton *btn = [ [UIButton alloc] initWithFrame:CGRectMake(10, 20, 30, 10)];

           (2)initWithType

                 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

                

                能定義的button類型:

               

                typedef enum {

                        UIButtonTypeCustom = 0,          自定義風格    最常用

                        UIButtonTypeRoundedRect,         圓角矩形 

                        UIButtonTypeDetailDisclosure,    藍色小箭頭按鈕,主要做詳細說明用

                        UIButtonTypeInfoLight,           亮色感嘆號

                        UIButtonTypeInfoDark,            暗色感嘆號

                        UIButtonTypeContactAdd,          十字加號按鈕

                 } UIButtonType;

 

2,UIButton常用方法 

           //設置button在view上的位置

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

           

           //設置button背景色

           btn.backgroundColor = [UIColor redColor];

 

           //設置button填充圖片

           [btn setImage: [UIImage imageNamed : @“Com.png”] forState: UIControlStateNormal];

 

           //設置button標題

            [btn setTitle: @“Title” forState: UIControlStateNormal];    //按鈕默認的文本

            [btn1 setTitle:@"我被點了!" forState:UIControlStateHighlighted];     //點擊時的文本

 

            //添加按鈕事件

             [btn addTarget: self action: @selector(btnClick) forControlEvents: UIControlEventTouchUpInside];  //事件方法名字是btnClick

 

            //點擊時按鈕發光,就是在按鈕中間發亮光

              btn1.showsTouchWhenHighlighted=YES;

 

3, forState

          作用: 定義按鈕的文字或圖片在何種狀態下才會顯現

       enum {

            UIControlStateNormal       = 0,         常規狀態顯現              

            UIControlStateHighlighted  = 1 << 0,    高亮狀態顯現    

            UIControlStateDisabled     = 1 << 1,    禁用的狀態纔會顯現

            UIControlStateSelected     = 1 << 2,    選中狀態              

            UIControlStateApplication  = 0x00FF0000, 當應用程序標誌時            

            UIControlStateReserved     = 0xFF000000  爲內部框架預留,可以不管他             

       };

 

4,forControlEvents

          作用: 設置觸發方式

       

       typedef NS_OPTIONS(NSUInteger, UIControlEvents) {

           

             UIControlEventTouchDown           = 1 <<  0,      // 指鼠標左鍵按下(注:只是“按下”)的動作      

                                                                    

             UIControlEventTouchDownRepeat     = 1 <<  1,      // 指鼠標左鍵連續多次重複按下(注:只是“按下”)                                                                                     的動作,比如,鼠標連續雙擊、三擊、……、多次連擊。

                                                                                                 說明:多次重複按下時,事件序列是這樣的:

                                                                                                         UIControlEventTouchDown ->

                                                                                                             UIControlEventTouchUpInside -> 

                                                                                                        UIControlEventTouchDown -> 

                                                                                                        UIControlEventTouchDownRepeat -> 

                                                                                                        UIControlEventTouchUpInside -> 

                                                                                                         UIControlEventTouchDown -> 

                                                                                                        UIControlEventTouchDownRepeat -> 

                                                                                                        UIControlEventTouchUpInside ->

                                                                                                        ......

                                                                                            除了第一次按下外,後面每次摁下都是一個                                                                                                            UIControlEventTouchDown事件,然後緊跟一個                                                                                                    UIControlEventTouchDownRepeat事件。

 

             UIControlEventTouchDragInside     = 1 <<  2,    // 指按下鼠標,然後在控件邊界範圍內拖動。

 

             UIControlEventTouchDragOutside    = 1 <<  3,     // 與UIControlEventTouchDragInside不同的是,拖動                                                                                                時,鼠標位於控件邊界範圍之外。但首先得有個                                                                                                    UIControlEventTouchDown事件,然後接一個                                                                                                        UIControlEventTouchDragInside事件,再接一個                                                                                                    UIControlEventTouchDragExit事件,這時,鼠標已                                                                                                經位於控件外了,繼續拖動就是                                                                                                                              UIControlEventTouchDragOutside事件了。

 

             UIControlEventTouchDragEnter      = 1 <<  4,    // 指拖動動作中,從控件邊界外到內時產生的事件。

 

             UIControlEventTouchDragExit       = 1 <<  5,       //指拖動動作中,從控件邊界內到外時產生的事件。

 

             UIControlEventTouchUpInside       = 1 <<  6,     //指鼠標在控件範圍內擡起,前提先得按下,即                                                                                                              UIControlEventTouchDown或                                                                                                                                  UIControlEventTouchDownRepeat事件。

 

             UIControlEventTouchUpOutside      = 1 <<  7,  //指鼠標在控件邊界範圍外擡起,前提先得按下,然後拖                                                                                          動到控件外,即 

                                                                                    UIControlEventTouchDown -> 

                                                                                       UIControlEventTouchDragInside(n 個) -> 

                                                                                         UIControlEventTouchDragExit -> 

                                                                                    UIControlEventTouchDragOutside(n 個) 

                                                                                    時間序列,再然後就是擡起鼠標,產生                                                                                                                  UIControlEventTouchUpOutside事件。

 

              UIControlEventTouchCancel         = 1 <<  8,        //所有觸摸取消事件,即一次觸摸因爲放上了太多手指而被取消,或者被上鎖或者電話呼叫打斷。

 

              UIControlEventValueChanged        = 1 << 12,     // sliders, etc.

 

              UIControlEventEditingDidBegin     = 1 << 16,     // UITextField

              UIControlEventEditingChanged      = 1 << 17,

              UIControlEventEditingDidEnd       = 1 << 18,

              UIControlEventEditingDidEndOnExit = 1 << 19,     // 'return key' ending editing

              UIControlEventAllTouchEvents      = 0x00000FFF,  // for touch events

              UIControlEventAllEditingEvents    = 0x000F0000,  // for UITextField

              UIControlEventApplicationReserved = 0x0F000000,  // range available for application use

              UIControlEventSystemReserved      = 0xF0000000,  // range reserved for internal framework use

              UIControlEventAllEvents           = 0xFFFFFFFF

         };

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章