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

         };

 

 

猜你喜欢

转载自2914905399.iteye.com/blog/2298193