美文网首页
iOS开发初级(一、基础002)

iOS开发初级(一、基础002)

作者: feitry | 来源:发表于2018-07-19 14:50 被阅读0次

    UILable、UIImageView、UIButton的拓展:
    三个控件,当显示文字时,使用UILable,当显示图片时,使用UIImageView,当带有点击事件时,使用UIButton。对于UIButton的拓展,需要知道:

        [button setTitle:@"我是按钮" forState:UIControlStateNormal];//设置button的文字
        [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];//设置button的文字颜色
    

    上面的代码,已经介绍了,现在,拓展一下按钮控件UIButton的状态(state):

    typedef NS_OPTIONS(NSUInteger, UIControlState) {
        UIControlStateNormal       = 0,//一般状态
        UIControlStateHighlighted  = 1 << 0,                  // 高亮状态used when UIControl isHighlighted is set
        UIControlStateDisabled     = 1 << 1,//不可以状态
        UIControlStateSelected     = 1 << 2,                  // 选中的状态 flag usable by app (see below)
        UIControlStateFocused NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 3, // Applicable only when the screen supports focus
        UIControlStateApplication  = 0x00FF0000,              // additional flags available for application use
        UIControlStateReserved     = 0xFF000000               // flags reserved for internal framework use
    };
    

    代码练习:

    @interface ViewController ()
    {
        UIButton *_buttonStateNormal;//声明一个变量,该类的全局变量 _buttonStateNormal
        UIButton *_buttonStateHighlighted;//声明一个变量,该类的全局变量_buttonStateHighlighted
        UIButton *_buttonStateSelected ;//声明一个变量,该类的全局变量_buttonStateSelected
        UIButton *_buttonStateDisabled;//声明一个变量,该类的全局变量_buttonStateDisabled
    }
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        _buttonStateNormal = [UIButton buttonWithType:UIButtonTypeCustom];//使用类方法初始化按钮
        _buttonStateNormal.frame = CGRectMake(20.0, 20.0, 80.0, 40.0);
        _buttonStateNormal.backgroundColor = [UIColor orangeColor];
        [_buttonStateNormal setTitle:@"按钮" forState:UIControlStateNormal];
        [_buttonStateNormal setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [_buttonStateNormal setBackgroundImage:[UIImage imageNamed:@"bg"] forState:UIControlStateNormal];//设置背景图片
        [self.view addSubview:_buttonStateNormal];
        
        
        _buttonStateHighlighted = [UIButton buttonWithType:UIButtonTypeCustom];//使用类方法初始化按钮
        _buttonStateHighlighted.frame = CGRectMake(20.0, 70, 80.0, 40.0);
        _buttonStateHighlighted.backgroundColor = [UIColor orangeColor];
        [_buttonStateHighlighted setTitle:@"按钮" forState:UIControlStateNormal];
        [_buttonStateHighlighted setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [_buttonStateHighlighted setTitle:@"按钮Highlighted" forState:UIControlStateHighlighted];
        [_buttonStateHighlighted setTitleColor:[UIColor greenColor] forState:UIControlStateHighlighted];
        [self.view addSubview:_buttonStateHighlighted];
    
        _buttonStateSelected = [UIButton buttonWithType:UIButtonTypeCustom];//使用类方法初始化按钮
        _buttonStateSelected.frame = CGRectMake(20.0, 120, 80.0, 40.0);
        _buttonStateSelected.backgroundColor = [UIColor orangeColor];
        [_buttonStateSelected setTitle:@"按钮" forState:UIControlStateNormal];
        [_buttonStateSelected setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [_buttonStateSelected setTitle:@"按钮Selected" forState:UIControlStateSelected];
        [_buttonStateSelected setTitleColor:[UIColor greenColor] forState:UIControlStateSelected];
        [_buttonStateSelected addTarget:self action:@selector(buttonSelectedClick:) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:_buttonStateSelected];
    
        _buttonStateDisabled = [UIButton buttonWithType:UIButtonTypeCustom];//使用类方法初始化按钮
        _buttonStateDisabled.frame = CGRectMake(20.0, 170.0, 80.0, 40.0);
        _buttonStateDisabled.backgroundColor = [UIColor orangeColor];
        [_buttonStateDisabled setTitle:@"按钮" forState:UIControlStateNormal];
        [_buttonStateDisabled setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [_buttonStateDisabled setTitle:@"按钮Disabled" forState:UIControlStateDisabled];
        [_buttonStateDisabled setTitleColor:[UIColor greenColor] forState:UIControlStateDisabled];
        [_buttonStateDisabled addTarget:self action:@selector(buttonDisableClick:) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:_buttonStateDisabled];
        
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    
    -(void)buttonSelectedClick:(UIButton *)sender {
        sender.selected = !sender.selected;
    }
    -(void)buttonDisableClick:(UIButton *)sender{
        [sender setEnabled:NO];//设置为不可点击UIControlStateDisabled
    
    }
    
    @end
    
    

    运行效果:(以及点击后效果)


    屏幕快照 2018-07-19 下午2.48.22.png 屏幕快照 2018-07-19 下午2.48.34.png

    UIButton的响应事件event(事件):
    代码:

    [_buttonStateSelected addTarget:self action:@selector(buttonSelectedClick:) forControlEvents:UIControlEventTouchUpInside];
    

    event的几种枚举:

    typedef NS_OPTIONS(NSUInteger, UIControlEvents) {
        UIControlEventTouchDown                                         = 1 <<  0,      // 点击下去响应on all touch downs
        UIControlEventTouchDownRepeat                                   = 1 <<  1,      // 重复点击响应on multiple touchdowns (tap count > 1)
        UIControlEventTouchDragInside                                   = 1 <<  2,//向内部拖拽响应
        UIControlEventTouchDragOutside                                  = 1 <<  3,//向外部拖拽响应
        UIControlEventTouchDragEnter                                    = 1 <<  4,
        UIControlEventTouchDragExit                                     = 1 <<  5,
        UIControlEventTouchUpInside                                     = 1 <<  6,//点击下去响应
        UIControlEventTouchUpOutside                                    = 1 <<  7,
        UIControlEventTouchCancel                                       = 1 <<  8,
    
        UIControlEventValueChanged                                      = 1 << 12,     // sliders, etc.
        UIControlEventPrimaryActionTriggered NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 13,     // semantic action: for buttons, 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
    };
    

    相关文章

      网友评论

          本文标题:iOS开发初级(一、基础002)

          本文链接:https://www.haomeiwen.com/subject/kkyzpftx.html