Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>The following algorithm should be reviewed and of course optimized. It is only something that I have put together and I've not tested it.</p> <p>initialize each slider with a max and minimum value and set the inital value as desired, but respecting that <code>x + y + z = 1</code>.</p> <pre><code>[self.slider1 setMinimumValue:0.0]; [self.slider1 setMaximumValue:1.0]; [self.slider1 setValue:0.20]; [self.slider2 setMinimumValue:0.0]; [self.slider2 setMaximumValue:1.0]; [self.slider2 setValue:0.30]; [self.slider3 setMinimumValue:0.0]; [self.slider3 setMaximumValue:1.0]; [self.slider3 setValue:0.50]; </code></pre> <p>Set the three slider to the same selector:</p> <pre><code>[self.slider1 addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged]; [self.slider2 addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged]; [self.slider3 addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged]; </code></pre> <p>The selector should do something like that:</p> <pre><code>- (void)valueChanged:(UISlider *)slider { UISlider *sliderX = nil; UISlider *sliderY = nil; UISlider *sliderZ = nil; if (slider == self.slider1) { sliderX = self.slider1; sliderY = self.slider2; sliderZ = self.slider3; } else if (slider == self.slider2) { sliderY = self.slider1; sliderX = self.slider2; sliderZ = self.slider3; } else { sliderY = self.slider1; sliderZ = self.slider2; sliderX = self.slider3; } float x = sliderX.value; float y = sliderY.value; float z = sliderZ.value; // x + y + z = 1 // Get the amout x has changed float oldX = 1 - y - z; float difference = x - oldX; float newY = y - difference / 2; float newZ = z - difference / 2; if (newY &lt; 0) { newZ += y + newY; newY = 0; } if (newZ &lt; 0) { newY += z + newZ; newZ = 0; } [sliderY setValue:newY animated:YES]; [sliderZ setValue:newZ animated:YES]; } </code></pre> <p>If there is something wrong with this code, please let me know, and I can fix it!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload