如果声明UIButton选择

时间:2013-05-22 10:05:12

标签: ios objective-c uibutton

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

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

3 个答案:

答案 0 :(得分:1)

[_menuRightItem2 isSelected]返回一个bool

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

所以尝试使用

if([_menuRightItem2 isSelected]){

}
希望它有所帮助。

答案 1 :(得分:0)

好吧,我试图在这个理解的基础上实现你的代码: _menuRightItem2UIButton,正在使用

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

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

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

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

-(IBAction)menuRightItem2Touch:(id)sender

答案 2 :(得分:0)

检查按钮是否被选中,如果不使用setselected功能,如下所示

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