2012-08-01 86 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