0

ABの2 つの入力コントロールが同時に動作しています。Aの値が変更された場合、Bその値に移動する必要があります。Bが変更された場合、 Aをこの値にシフトする必要があります。アルゴリズムを設定するにはどうすればよいですか?

作成しようとしましたが、変更がループするため、正しく動作しません。どんな助けでも大歓迎です。

if(A Changed)
change B's value to value of A
if( B Changed)
change A's value to value of B

編集: 実際のシナリオ..A: カルーセル B: スライダー

- (void)carouselDidEndScrollingAnimation:(iCarousel *)carousel
{
        [self.slider setValue:self.carousel.currentItemIndex];
}
-(IBAction) sliderChanged:(id) sender{    
    [self.carousel scrollToItemAtIndex:self.slider.value animated:YES];
}

問題:sliderChanged:メソッドがアクションに接続されていますvaluechanged

したがって、カルーセルが移動するたびに、カルーセルの値に応じてスライダーを設定します。カルーセルが変更されたときは、スライダーの値を変更します

要件: スライダーを使用してカルーセルをスクロールし、値が大きい場合はスライダーを動かすことでスワイプを減らすことができます

4

2 に答える 2

0

現時点では、システムには A-change と B-change という 2 つの状態があります。もちろん、A 変更は B 変更を引き起こし、その逆も同様であるため、何かが変更されるたびに無限ループが発生します。

しかし、どうして他の方法があり得るのでしょうか? 考慮できることの 1 つは、変更自体と、誰が変更を行っているかです。あるケースでは、ユーザーがデータを入力すると、それが変更になります。明らかに、あなたはそのケースをどのように処理したいかを知っています。しかし、その後別の変更が発生します。ユーザーの変更に応じて、プログラム自体が実際に何かを変更します。その場合、おそらく別の方法で処理したいと思うでしょう。

それは役に立ちますか?

于 2013-02-26T21:16:38.400 に答える
0

これを行う通常の方法は、A と B の両方が更新する単一のモデル値を舞台裏で保持し、A と B にもそのモデル値を観察させ、それに応じて変更を加えさせることです。前者は既存のコードを更新して値を変更するだけで実行でき、後者はキー値監視を使用して実行できます。

于 2013-02-26T21:16:48.973 に答える