2013-02-15 8 views
6

क्या UISlider मूल्यों को दूर करने का कोई अच्छा तरीका है? डिफ़ॉल्ट बाईं ओर न्यूनतम और दाईं ओर अधिकतम है। मैं इसे विपरीत तरीके से काम करना चाहता हूं।मैं UISlider के न्यूनतम-अधिकतम मानों को कैसे उलटा सकता हूं?

180 डिग्री घूर्णन थोड़ा मूर्ख लगता है। कोई विचार?

धन्यवाद!

उत्तर

7

बस मूल्य आप अधिकतम मूल्य से स्लाइडर, कि मूल्यों को उल्टा होगा से प्राप्त कर घटाना।

+1

ठीक है, "अधिकतम मूल्य" से घटाना, नहीं "1" – borrrden

+0

@borrrden, हाँ, मैं अपडेट कर देंगे - मैं 0 से 1 डिफ़ॉल्ट पैमाने संभालने किया गया था। – rdelmar

+1

FI: यदि आपका न्यूनतम 0.5 है और आपका अधिकतम 1.5 है। चयनित मान x और y इसके विपरीत है, फिर x + y = 2। तो, आप इस तरह के विपरीत की गणना कर सकते हैं: y = 2-x – Mrwolfy

2

सबक्लास एनएसएसएलडर/यूआईस्लाइडर। इस प्रकार इन दोनों तरीकों ओवरराइड -

//Assumes minValue not necessarily 0.0 

-(double)doubleValue 
{ 

    double minVal = [self minValue]; 
    double maxVal = [self maxValue]; 

    double curValue = [super doubleValue]; 
    double reverseVal = maxVal - curValue + minVal; 
    return reverseVal; 
} 

-(void)setDoubleValue:(double)aDouble 
{ 

    double minVal = [self minValue]; 
    double maxVal = [self maxValue]; 

    double reverseVal = maxVal - aDouble + minVal; 

    [super setDoubleValue:reverseVal]; 
} 

यह मान सही/शीर्ष न्यूनतम और बाएं/नीचे के रूप में प्रकट करने के लिए मैं तो आप के रूप में सटीक एक ही बात की जरूरत अधिकतम

3

के रूप में प्रकट करने के लिए अनुमति को उलटने होगा ... तो इसे एक और नीचे की स्थिति में रखकर एक और 90 डिग्री घुमाया। स्लाइडर सममित है, इसलिए यह दोनों स्थितियों में बिल्कुल वही दिखता है। लेकिन न्यूनतम और अधिकतम मान अब विपरीत हैं।

कमान है ...

mySlider.transform = CGAffineTransformRotate(mySlider.transform, 180.0/180*M_PI); 
0

बस अधिकतम मूल्य से स्लाइडर वर्तमान मूल्य घटाना।

label.text = [NSString stringWithFormat:@" %.f%% ", 100 - self.slider.value]; 
+0

आपका उत्तर मेरा समय बचाता है। धन्यवाद –

संबंधित मुद्दे