2013-05-22 34 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