2013-03-22 8 views
13

मैं निम्नलिखित कोड का उपयोग कर UISegmentedControl की उपस्थिति,डिफॉल्ट UISegmentedControl उपस्थिति को कैसे सेट करें?

UIImage *segmentSelected = [[UIImage imageNamed:@"Segment_Unselected.png"] 
          resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12, 0, 12)]; 
UIImage *segmentUnselected = [[UIImage imageNamed:@"Segment_Selected.png"] 
           resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12, 0, 12)]; 

[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected 
              forState:UIControlStateNormal 
             barMetrics:UIBarMetricsDefault]; 
[[UISegmentedControl appearance] setBackgroundImage:segmentSelected 
              forState:UIControlStateSelected 
             barMetrics:UIBarMetricsDefault]; 

[[UISegmentedControl appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
                 [UIColor colorWithRed:77.0/255.0 green:45.0/255.0 blue:8.0/255.0 alpha:1],UITextAttributeTextColor, 
                 [UIColor clearColor], UITextAttributeTextShadowColor, 
                 [NSValue valueWithUIOffset:UIOffsetMake(0, 0)], UITextAttributeTextShadowOffset, 
                 [UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0], UITextAttributeFont, nil] forState:UIControlStateNormal]; 

[[UISegmentedControl appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
                 [UIColor whiteColor],UITextAttributeTextColor, 
                 [UIColor clearColor], UITextAttributeTextShadowColor, 
                 [NSValue valueWithUIOffset:UIOffsetMake(0, 0)], UITextAttributeTextShadowOffset, 
                 [UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0], UITextAttributeFont, nil] forState:UIControlStateSelected]; 

[[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"SegmentedControl_Divider.png"] 
          forLeftSegmentState:UIControlStateNormal 
           rightSegmentState:UIControlStateNormal 
             barMetrics:UIBarMetricsDefault]; 

की स्थापना की है और मैं सही उत्पादन enter image description here

UISegment मिला लेकिन enter image description here

की तरह अब मैं के डिफ़ॉल्ट उपस्थिति सेट करना चाहते हैं

तो मुझे क्या करना है ???

+0

@ बिलवुडर मैं बस इस कोड को लागू कर रहा था, मैंने जो बदलाव किया वह मैंने किया और यह कोड में स्पष्ट रूप से दिखाई दे रहा था। ऐसा लगता है कि यह एक कॉपी पेस्ट त्रुटि है। मैं जानता हूं कि इस कोड का उपयोग करने का प्रयास करने वाले सभी को अंततः त्रुटि मिल जाएगी, लेकिन मैं बस दूसरे के समय को बचाने की कोशिश कर रहा था :-) –

+0

@ बिलवुडर आप सही हैं। मुझे यहां टिप्पणी में समस्या का उल्लेख करना चाहिए था। गलत छवियों को उपरोक्त 'सेगमेंट सेलेक्टेड' और 'सेगमेंट अचयनित' चर के लिए असाइन किया गया है। –

+0

@AdilMalik आप इसे हमेशा अपने उत्तर के रूप में जोड़ सकते हैं। उत्तर टिप्पणियों से अधिक दिखाई दे रहे हैं। यदि आप प्रश्न संपादित करते हैं, तो आप भविष्य के पाठकों को भ्रमित कर सकते हैं जो आश्चर्य करते हैं कि उत्तर प्रश्न को प्रतिबिंबित नहीं करते हैं (इस उदाहरण में जरूरी नहीं)। मेरा सुझाव है कि आप एक उत्तर जोड़ें, फिर हम चीजों को साफ रखने के लिए इन सभी टिप्पणियों को हटा सकते हैं। –

उत्तर

14

कि आप डिफ़ॉल्ट नियंत्रक

UIImage *segmentSelected = [[UIImage imageNamed:nil]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12, 0, 12)]; 
UIImage *segmentUnselected = [[UIImage imageNamed:nil]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12, 0, 12)]; 
    
[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected 
                                forState:UIControlStateNormal 
                                barMetrics:UIBarMetricsDefault]; 
[[UISegmentedControl appearance] setBackgroundImage:segmentSelected 
                                forState:UIControlStateSelected 
                                barMetrics:UIBarMetricsDefault]; 
        
[[UISegmentedControl appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
           [UIColor colorWithRed:77.0/255.0 green:45.0/255.0 blue:8.0/255.0 alpha:1],UITextAttributeTextColor, 
           [UIColor clearColor], UITextAttributeTextShadowColor, 
           [NSValue valueWithUIOffset:UIOffsetMake(0, 0)], UITextAttributeTextShadowOffset, 
           [UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0], UITextAttributeFont, nil] forState:UIControlStateNormal]; 
        
[[UISegmentedControl appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
           [UIColor whiteColor],UITextAttributeTextColor, 
           [UIColor clearColor],UITextAttributeTextShadowColor,  
           [NSValue valueWithUIOffset:UIOffsetMake(0, 0)],UITextAttributeTextShadowOffset, 
           [UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0], UITextAttributeFont, nil] forState:UIControlStateSelected]; 
         
[[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:nil] 
           forLeftSegmentState:UIControlStateNormal 
           rightSegmentState:UIControlStateNormal 
           barMetrics:UIBarMetricsDefault]; 
+0

यह वही है जो मैं कहता हूं .... – wasim

+0

कहां है @ टोसा ?? –

+0

@ वासिममेलेक: चला गया। –

2

आपके द्वारा असाइन की गई छवियों के लिए कोड हटाएं। ऊपर दिए गए कोड पर नहीं के बराबर करने के लिए

+0

लेकिन मैं केवल एक दृश्य के लिए डिफ़ॉल्ट सेगमेंट का उपयोग करना चाहता हूं, और दूसरे के लिए मैं कस्टम सेगमेंट चाहता हूं, मैंने इस कोड को ऐप के रूटव्यू कंट्रोलर में वापस कर दिया है, तो डिफ़ॉल्ट सेगमेंट उपस्थिति को फिर से लोड कैसे करें? अन्य विचारों के लिए –

+0

कोड को छोड़ दें जैसा कि यह है। डिफ़ॉल्ट सेगमेंट के साथ देखने के लिए आप इंटरफ़ेस बिल्डर का उपयोग कर सकते हैं या कोड द्वारा डिफ़ॉल्ट सेगमेंट जोड़ सकते हैं। –

+0

मैंने इंटरफ़ेस बिल्डर में इसे आजमाया है, यह मुझे डिफ़ॉल्ट सेगमेंट दिखाता है लेकिन जब मैं ऐप चलाता हूं तो यह मुझे पुराना उपस्थिति सेगमेंट दिखाता है जिसे मैंने जल्दी सेट किया है .. :( –

4

सेट imagename और यह दृश्य जहाँ आप चाहते हैं डिफ़ॉल्ट व्यवहार

2

खंड की छवि सेट के साथ चाहते हैं ViewController इस कोड को पर डाल शून्य करने के लिए नियंत्रक। फिर, एक बार अपने सिम्युलेटर को साफ करें तो चलाएं। यह ठीक होगा ....

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