iPhone UIButton with UISwitch functionality

前端 未结 4 1619
轮回少年
轮回少年 2020-12-02 09:01

Is there either a way to implement UISwitch with custom graphics for the switch-states? Or as an alternative the other way round, an UIButton with UISwitch functionality?

相关标签:
4条回答
  • 2020-12-02 09:42

    set the image to show on selected state:

    [button setImage:[UIImage imageNamed:@"btn_graphics"] forState:UIControlStateSelected];
    

    and then on touch up inside selector, set:

    button.selected = YES;
    

    if you want this to cancel another button's selection, set:

    otherButton.selected = NO;
    
    0 讨论(0)
  • 2020-12-02 09:44

    For programmatically inclined:

    -(void) addToggleButton {
        CGRect aframe = CGRectMake(0,0,100,100);
    
        UIImage *selectedImage = [UIImage imageNamed:@"selected"];
        UIImage *unselectedImage = [UIImage imageNamed:@"unselected"];
    
        self.toggleUIButton = [[UIButton alloc] initWithFrame:aframe];
        [self.toggleUIButton setImage:unselectedImage forState:UIControlStateNormal];
        [self.toggleUIButton setImage:selectedImage forState:UIControlStateSelected];
        [self.toggleUIButton addTarget:self 
                                action:@selector(clickToggle:) 
                      forControlEvents:UIControlEventTouchUpInside];
        [self addSubview:self.toggleUIButton];
    }
    
    -(void) clickToggle:(id) sender {
        BOOL isSelected = [(UIButton *)sender isSelected];
        [(UIButton *) sender setSelected:!isSelected];
    }
    
    0 讨论(0)
  • 2020-12-02 09:49

    To build on what PGB and nurne said above, after you set your states and attach a selector (event method) you would want to put this code in that selector.

    - (IBAction)cost:(id)sender 
    {
        //Toggle current state and save
        self.buttonTest.selected = !self.buttonTest.selected;
    
        /**
         The rest of your method goes here.
         */
    }
    
    0 讨论(0)
  • 2020-12-02 09:52

    UIButton already supports a "switch" functionality.

    Just set a different image in Interface Builder for the "Selected State Configuration", and use the selected property of UIButton to toggle its state.

    0 讨论(0)
提交回复
热议问题