-4

2つのUISliderがあり、どちらも値の範囲は1〜8です。アプリを起動すると、slider1は値1になり、slider2は値8になります。slider1を値2に移動すると、slider2を値7に自動的に移動します。したがって、一方のスライダー値が上がると、もう一方のスライダー値が下がります。

これらのスライダーをリンクするにはどうすればよいですか?

4

1 に答える 1

1

上手。私は自分の小さなアプリを作成し、その機能を簡単に実装しました。方法は次のとおりです。あなたがする必要があるのは、あなたのスライダーのそれぞれにアクションを接続することです。そのアクションは、値が変更されるたびに呼び出されます。各アクションの内部。このようなことをしてください。.mで

@synthesize slider1;
@synthesize slider2;

...

- (IBAction)slider2DidChange:(id)sender {
    NSLog(@"Value did change");
    int value = [slider2 value];
    NSLog(@"%d", value);
    int newValue = 8 - value;
    [slider1 setValue:newValue animated:YES];
}

- (IBAction)slider1DidChange:(id)sender {
    NSLog(@"Value did change");
    int value = [slider1 value];
    NSLog(@"%d", value);
    int newValue = 8 - value;
    [slider2 setValue:newValue animated:YES];
}

もちろん、それには4つの接続が必要です。

@property (assign) IBOutlet UISlider *slider1; //Connect to slider1
@property (assign) IBOutlet UISlider *slider2; //Connect to slider2


- (IBAction)slider2DidChange:(id)sender; //Connect action to slider2
- (IBAction)slider1DidChange:(id)sender; //Connect action to slider1

それでおしまい。私の小さなアプリをInfiniteOpenSyntaxに投稿し、まもなくリンクを提供します。そうすれば、ソースをダウンロードして自分で確認することができます。乾杯!

于 2012-12-06T14:27:23.633 に答える