2012-05-29 10 views
5

मैं UISegmentedControl को अनुकूलित करने के लिए पृष्ठभूमि और विभक्त छवियों का उपयोग कर रहा हूं। हालांकि, सेगमेंट नियंत्रण के लिए विभाजक छवि और पृष्ठभूमि छवि के बीच एक स्थान दिखाई देता है।विभाजित छवि के साथ UISegementedControl अंतरिक्ष

यहाँ रिक्त स्थान

enter image description here

और यहाँ दिखाने वाले स्क्रीनशॉट है कोड मैं खंड छवियों

UIImage *selectedImage = [[UIImage imageNamed:@"segcontrol_selectround.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)]; 
UIImage *unselectedImage = [[UIImage imageNamed:@"segcontrol_unselectround.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)]; 
UIImage *leftSelected = [UIImage imageNamed:@"segcontrol_leftselected.png"]; 
UIImage *rightSelected = [UIImage imageNamed:@"segcontrol_rightselected.png"]; 
UIImage *neitherSelected = [UIImage imageNamed:@"segcontrol_bothunselected.png"]; 

[segment setBackgroundImage:unselectedImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[segment setBackgroundImage:selectedImage forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; 
[segment setDividerImage:leftSelected forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[segment setDividerImage:rightSelected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; 
[segment setDividerImage:neitherSelected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

मैं सभी विभक्त छवियों की जाँच की स्थापित करने के लिए उपयोग कर रहा हूँ, और वे कर रहे हैं सभी समान चौड़ाई और इसमें कोई पारदर्शी पिक्सेल नहीं है।

मैं सेगमेंट नियंत्रण से इन रिक्त स्थान को कैसे हटा सकता हूं?

+0

क्या आप अपने कार्यान्वयन के विवरण पर थोड़ा और जोड़ सकते हैं? क्या आप UIAppearanceProxy का उपयोग कर रहे हैं, इसे उपclassing? – Rexeisen

+0

@Rexeisen मैंने कोड जोड़ा जो मैं पृष्ठभूमि छवियों को सेट करने के लिए उपयोग कर रहा हूँ – Paul

उत्तर

3

सुनिश्चित करें कि आप जिन छवियों को आप डिवाइडर (leftSelected, rightselected, और neitherselected) के लिए उपयोग करते हैं, वे सभी समान चौड़ाई हैं। अक्सर क्योंकि neitherselected में मध्य में रेखा है जो दूसरों की तुलना में 1pt व्यापक है। वे सब एक ही होने की जरूरत है!

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