2010-03-04 25 views
42

मैं लंबवत में UISlider डालना चाहता हूं। मुझे इसके बारे में कोई जानकारी नहीं है, इसलिए कृपया इसके लिए मेरी मदद करें।UISlider वर्टिकल कैसे डालें?

+3

यह इस सवाल का डुप्लिकेट कल पूछा है: http://stackoverflow.com/questions/ 2369 9 26/कैसे-कर-आई-मेक-ए-वर्टिकल-यूस्लाइडर –

उत्तर

103

आपको यह प्रोग्रामेटिकल करना है। मान लिया जाये कि अपने UISlider एक चर slider कहा जाता है के लिए बाध्य है, ViewController.m में अपने viewDidLoad विधि में इस कोड जोड़ें:

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI * 0.5); 
    slider.transform = trans; 
} 

आप इस पर किसी भी अधिक मदद की जरूरत है मुझे जानते हैं ..

+40

यह शीर्ष पर न्यूनतम वैल्यू अंत रखता है। नीचे दिए गए न्यूनतम वैल्यू अंत को रखने के लिए M_PI * -0.5 का उपयोग करें। –

+0

उपयोगी नोट। यह सबसे आम परिदृश्य है। धन्यवाद क्रिसपिक्स। – ravinsp

+2

आप भी उपयोग कर सकते हैं -एम_PI_2 –

30

Xcode के रूप में 4.2, आप इंटरफ़ेस बिल्डर में ऐसा कर सकते हैं।

  • एक स्लाइडर बनाएं
  • "पहचान इंस्पेक्टर"
  • दिखाएँ एक "उपयोगकर्ता निर्धारित क्रम गुण"
  • सेट कुंजी पथ के लिए "layer.transform.rotation.z", प्रकार के रूप में "स्ट्रिंग" ( "संख्या" फ़्लोटिंग पॉइंट मानों की अनुमति नहीं देगा) (एक्सकोड 5 के बाद से संभव) और "-1.570795" (-π/2) के मान।

दुर्भाग्य से, यह अभी भी इंटरफ़ेस बिल्डर में क्षैतिज के रूप में दिखाई देगा।

लेकिन आप केंद्र की स्थिति बना सकते हैं और कस्टम क्लास बनाने की आवश्यकता नहीं है, इसलिए यह कुछ मामलों में पर्याप्त उपयोगी हो सकता है। प्रभाव ravinsp के कोड के समान है।

+0

दरअसल आप अल्पविराम (डॉट के बजाए) के साथ संख्या में फ्लोट डाल सकते हैं। – user500

+0

स्वीकार किए गए, कोड-आधारित उत्तर, IMHO से अधिक क्लीनर। – user1021430

4

मामले में आप ऑटो लेआउट के साथ काम करते हैं:

अपने viewDidLoad में, आजमाएँ:

UIView *superView = self.sizeSlider.superview; 
[self.sizeSlider removeFromSuperview]; 
[self.sizeSlider removeConstraints:self.view.constraints]; 
self.sizeSlider.translatesAutoresizingMaskIntoConstraints = YES; 
self.sizeSlider.transform = CGAffineTransformMakeRotation(M_PI_2); 
[superView addSubview:self.sizeSlider]; 

यह बाधाओं के साथ काम नहीं करता है, तो चाल अपने uislider के लिए बाधाओं को दूर करने के लिए है। आपको अपनी फ्रेम प्रॉपर्टी सेट करके इसे मैन्युअल रूप से आकार बदलना पड़ सकता है।

5

स्विफ्ट 3:

slider.transform = slider.transform.rotated(by: CGFloat(0.5 * Float.pi)) 

// उपयोग 1.5 स्लाइडर की छाया को उलटने के लिए अगर आप चाहते हैं

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