0

我不确定为什么这不起作用:

- (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;
}
4

3 回答 3

1

[_menuRightItem2 isSelected]返回一个布尔值

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

所以尝试使用

if([_menuRightItem2 isSelected]){

}

希望能帮助到你。

于 2013-05-22T10:45:20.917 回答
0

好吧,我试图在这种理解的基础上实现你的代码: _menuRightItem2isUIButton并且 is 监听UIControlEventTouchUpInside事件使用

-(IBAction)menuRightItem2Touch:(id)sender method.

有两个滑块 (IBOutlets) slider 1, slider2. 两者都使用监听ValueChanged事件

-(IBAction) sliderValueChanged:(UISlider*)sender

代码似乎运行完美。请确保您已_menuRightItem2聆听 -

-(IBAction)menuRightItem2Touch:(id)sender
于 2013-05-22T10:25:45.353 回答
0

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

- (IBAction)menuRightItem2Touch:(id)sender {    
    if([_menuRightItem2 isSelected])
    {        
        [_menuRightItem2 setSelected:NO];        
    }    
    else{
        [_menuRightItem2 setSelected:YES];
    }
}
于 2013-05-22T10:43:39.687 回答