2013-05-22 27 views
0

林不知道为什么,这是行不通的语句:如果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; 
} 
+1

请详细说明 –

+0

什么是_menuRightItem2? – Lucien

+0

尝试将滑块的“连续”属性更改为“否”。然后我想你不需要检查_menuRightItem2.selected – ajithmn89

回答

0

好吧,我试图执行关于这样的认识基础代码: _menuRightItem2UIButton和使用

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

有被监听UIControlEventTouchUpInside事件是两个滑块(IBOutlets)slider 1slider2。 Both listen for ValueChanged使用事件

-(IBAction) sliderValueChanged:(UISlider*)sender 

该代码似乎运行完美。请确保你已经_menuRightItem2听 -

-(IBAction)menuRightItem2Touch:(id)sender 
+0

那么代码应该只在menuRightItem2被选中时工作,这就是我试图在这里完成的事情。 – Tarayaa

+1

是的,只有当我选择按钮并移动滑块时,代码才有效。尝试调试并确保控件进入 - (IBAction)menuRightItem2Touch:(id)发件人,当你选择按钮。 –

+0

你可能会上传你制作的项目吗?看看我能否发现问题。 – Tarayaa

0

检查按键是否被选中,如果没有使用的setSelected功能如下图所示

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

你能否在你的答案中添加细节?他为什么要这样做?只是说“尝试”并不是一个好的答案。 – Popeye

1

[_menuRightItem2 isSelected]返回一个布尔值

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

因此尝试使用

if([_menuRightItem2 isSelected]){ 

} 

希望它帮助。

+0

你能否给我的答案增加细节?他为什么要这样做?只是说“尝试和使用”不是一个好的答案。 – Popeye

+0

@Popeye ..现在,这是你有用的事情。 – Bonnie

+0

+1用于改进编辑答案。 – Popeye