2012-08-01 50 views
0

我在我的应用程序中进行搜索功能,但我在为我的UISlider计算代码时遇到了一些麻烦。在故事板中创建滑块并将其连接起来。我有一个.plist和一个字典数组作为信息源。这些字典包含有关葡萄酒的信息。使用值填充UISlider


  • 滑块应reprecent在字典中的关键 “价格” 值。我选择了Number,所以其中一些就像78,900000000001。换句话说,他们需要两位小数的格式。

  • minimumValue =字典中的最低值,向下取整至最接近的10(如果最小值= 67,90,则minimumValue = 60),如果不太复杂的话。

  • maximumValue =最高值,但向上舍入到最接近的10

  • 它是用户设置一个可选的最低价格,所以默认位置应该minimumValue。

  • 我想滑动,当它在时间一步5个数字,比如70%,75,80,85,90等


这是UISlider代码到目前为止:

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
self.navigationItem.title = @"Search"; 

NSString *path = [[NSBundle mainBundle] pathForResource:@"Wines" ofType:@"plist"]; 
allObjectsArray = [[NSMutableArray alloc] initWithContentsOfFile:path]; 

minSlider.continuous = YES; 
[minSlider setMinimumValue: ]; // Lowest value rounded down to closest 10 
[minSlider setMaximumValue: ]; // Highest value rounded up to closest 10 

[minSlider addTarget:self 
      action:@selector(minValueChanged:) 
forControlEvents:UIControlEventValueChanged]; 

minText.text = minSlider.minimumValue // <--- or something like that 
} 

- (void)minValueChanged:(UISlider*)sender 
{ 
// And something here for change of value and text field 
minText.text = current slider value 
} 

你能帮我完成吗?根据我在研究中了解到的情况,我开始了研究。 :)

回答

1

这取决于你的plist是如何构成的一点,但你不告诉我们......我猜想它看起来就像

<array> 
    <dict> 
    <key>name</key> 
    <string>Bordeaux</string> 
    <key>price</key> 
    <real>75.40</real> 
    </dict> 
    <dict> 
    <key>name</key> 
    <string>Chardonnay</string> 
    <key>price</key> 
    <real>29.90</real> 
    </dict> 
</array> 

你这是怎么确定最小值和最大值:

NSNumber *minValue = [allObjectsArray valueForKeyPath:@"@min.price"]; 
NSNumber *maxValue = [allObjectsArray valueForKeyPath:@"@max.price"]; 

这是你如何四舍五入的数字:

float roundedDown = ((int)[minValue floatValue]/10)*10.0; 
float roundedUp = ((int)[maxValue floatValue]/10)*10.0 +10; 

这是你如何设置滑块最小值:

minSlider.minimumValue = [minValue floatValue]; 

这是你如何做一个标签只显示5的倍数:

​​
+0

谢谢,看起来像它会做到这一点!但是roundedDown和roundedUp是未使用的变量。你能告诉我如何使用它们吗?如果我现在运行它,它从2开始,并且无法滑动。 PS。你是100%正确的关于plist结构(但没有小数(如99)是整数而不是真实的,我不知道它的supposted是这样的)。 – ingenspor 2012-08-02 03:15:38