UIButton选择上的If语句



我不知道为什么不工作:

- (IBAction)sliderValueChanged:(UISlider *)sender {
    if (_menuRightItem2.selected == YES) {
        NSLog(@"yes");
        if (sender == self.slider1)
            [sender setValue:((int)((slider1.value + 1) / 1.0) - 1.0) animated:NO];
        else if (sender == self.slider2)
            [sender setValue:((int)((slider2.value + 1) / 1.0) - 1.0) animated:NO];
    }
    barHeight = slider1.value * -20 + slider2.value * -50; //! hoogte in de min, yea right.
    [UIView animateWithDuration:0.50 animations:^{
        self.orangeView.frame = CGRectMake(595, 615, 80, barHeight);
    }];
}

我想要完成的是,当menuRightItem2被选中时,它会执行我的if else语句,否则不会。但我的NSLog()甚至不工作。实现这一目标的正确方法是什么?

我的按钮语句:

- (IBAction)menuRightItem2Touch:(id)sender {
    _menuRightItem2.selected = !_menuRightItem2.selected;
}

[_menuRightItem2 isSelected]返回bool

您可以直接在if语句中使用此方法,这是推荐的方法,而不是将其等同于YES

所以试着用

if([_menuRightItem2 isSelected]){
}

希望能有所帮助。

嗯,我试着在这种理解的基础上实现你的代码:_menuRightItem2UIButton,正在使用

监听UIControlEventTouchUpInside事件
-(IBAction)menuRightItem2Touch:(id)sender method.

有两个滑块(IBOutlets) slider 1, slider2。都使用

监听ValueChanged事件
-(IBAction) sliderValueChanged:(UISlider*)sender

代码似乎运行得很好。请确保你已经让_menuRightItem2听-

-(IBAction)menuRightItem2Touch:(id)sender

检查按钮是否被选中,如果没有使用setselected函数,如下所示

- (IBAction)menuRightItem2Touch:(id)sender {    
    if([_menuRightItem2 isSelected])
    {        
        [_menuRightItem2 setSelected:NO];        
    }    
    else{
        [_menuRightItem2 setSelected:YES];
    }
}

最新更新