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

さて、私はこの理解に基づいてあなたのコードを実装しようとしました: _menuRightItem2isと is を使用してイベントを UIButtonリッスンしていますUIControlEventTouchUpInside

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

2 つのスライダー (IBOutlets) がありslider 1ますslider2ValueChangedどちらも次を使用してイベントを リッスンします

-(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 に答える