Как получить окончательное значение в диапазоне Slider? - PullRequest
0 голосов
/ 03 декабря 2018

Я использую ползунок TT диапазона (Double Slider) для фильтрации цен в моем приложении, все работает отлично, но когда моя окончательная цена равна (например, 20) без ползунка выбора, я нажимаю кнопку «Применить», конечная ценане приходит и опция ползунка приходит к значению 0, если какие-либо ответы будут оценены.Заранее спасибо.Мой код

float price = [_filterpriceStr floatValue];

NSLog(@"%f",price);

if ([[GlobalVariables appVars].Apply isEqualToString:@"Apply"]) {

    float minimum = [[[NSUserDefaults standardUserDefaults]valueForKey:@"filtermin"] floatValue];
    float maxmum = [[[NSUserDefaults standardUserDefaults]valueForKey:@"filtermax"] floatValue];

    minValue = [[NSUserDefaults standardUserDefaults]valueForKey:@"filtermin"];
    maxValue = [[NSUserDefaults standardUserDefaults]valueForKey:@"filtermax"];

    //standard range slider
    self.rangeSlider.delegate = self;
    self.rangeSlider.minValue = 0;
    self.rangeSlider.maxValue = price;
    self.rangeSlider.step = price;

    self.rangeSlider.selectedMinimum = minimum;
    self.rangeSlider.selectedMaximum = maxmum;

    NSNumberFormatter *customFormatter = [[NSNumberFormatter alloc] init];
    customFormatter.positivePrefix = @"£";
    self.rangeSlider.numberFormatterOverride = customFormatter;
    self.rangeSlider.tintColorBetweenHandles = [UIColor colorWithRed:15.0f/255.0f green:201.0f/255.0f blue:218.0f/255.0f alpha:1.0f];

}
else
{
    float price = [_filterpriceStr floatValue];

    //standard rsnge slider
    self.rangeSlider.delegate = self;
    self.rangeSlider.minValue = 0;
    self.rangeSlider.maxValue = price;
    self.rangeSlider.selectedMinimum = 0;
    self.rangeSlider.selectedMaximum = price;

    NSNumberFormatter *customFormatter = [[NSNumberFormatter alloc] init];
    customFormatter.positivePrefix = @"£";
    self.rangeSlider.numberFormatterOverride = customFormatter;
    self.rangeSlider.tintColorBetweenHandles = [UIColor colorWithRed:15.0f/255.0f green:201.0f/255.0f blue:218.0f/255.0f alpha:1.0f];

}

при нажатии кнопки «Применить»

 [GlobalVariables appVars].PriceRange = @"PriceRange";


[[NSUserDefaults standardUserDefaults]setValue:minValue forKey:@"filtermin"];

[[NSUserDefaults standardUserDefaults]setValue:maxValue forKey:@"filtermax"];

[[NSUserDefaults standardUserDefaults]synchronize];

NSLog(@"%@",maxValue);

[self.navigationController popViewControllerAnimated:NO];

1 Ответ

0 голосов
/ 03 декабря 2018

Добавьте этот метод делегата, с помощью которого вы получите минимальное и максимальное значение слайдера.

 -(void)rangeSlider:(TTRangeSlider *)sender didChangeSelectedMinimumValue:(float)selectedMinimum andMaximumValue:(float)selectedMaximum{

NSLog(@" Min Value: %.0f Max Value: %.0f", selectedMinimum, selectedMaximum);

    [[NSUserDefaults standardUserDefaults]setValue:selectedMinimum forKey:@"filtermin"];

    [[NSUserDefaults standardUserDefaults]setValue:selectedMaximum forKey:@"filtermax"];

 }
...