2012-05-29 3 views
5

Ich verwende Hintergrund und Teilerbilder, um eine UISegmentedControl anzupassen. Zwischen dem Teilerbild und dem Hintergrundbild für die Segmentsteuerung erscheint jedoch ein Leerzeichen.UISegementedControl mit Teiler Bild enthält Platz

Hier ist ein Screenshot zeigt die Räume

enter image description here

Und hier ist der Code, den ich die Segment Bilder einstellen bin mit

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]; 

ich alle Teiler Bilder geprüft, und sie sind alle die gleichen Breiten und enthalten keine transparenten Pixel.

Wie entferne ich diese Leerzeichen aus dem segmentierten Steuerelement?

+0

Können Sie Ihre Implementierungsdetails etwas erweitern? Verwenden Sie UIAppearanceProxy, um es zu untergliedern? – Rexeisen

+0

@Rexeisen Ich habe den Code hinzugefügt, mit dem ich die Hintergrundbilder einstelle – Paul

Antwort

3

Stellen Sie sicher, dass die für die Teiler verwendeten Bilder (leftSelected, rightselected und neitherselected) alle die gleiche Breite haben. Oft, weil neitherselected die Linie in der Mitte hat, ist es 1pt breiter als die anderen. Sie müssen alle gleich sein!