iOS 6 UISegmentedControl mit iOS 7 Design


Answers

Sie können sich hier ein Beispiel ansehen oder ein benutzerdefiniertes Steuerelement verwenden und die Bilder an Ihre Bedürfnisse anpassen.

Hier ist ein Beispiel, wie Sie UISegmentedControl :

@implementation CustomSegmentedControl
-(id)initWithItems:(NSArray *)items
{
    self = [super initWithItems:items];
    if (self) {

        [self setDividerImage:[UIImage imageNamed:@"segmented-control-divider-none-selected"]
          forLeftSegmentState:UIControlStateNormal
            rightSegmentState:UIControlStateNormal
                   barMetrics:UIBarMetricsDefault];
        [self setDividerImage:[UIImage imageNamed:@"segmented-control-divider-left-selected"]
          forLeftSegmentState:UIControlStateSelected
            rightSegmentState:UIControlStateNormal
                   barMetrics:UIBarMetricsDefault];
        [self setDividerImage:[UIImage imageNamed:@"segmented-control-divider-right-selected"]
          forLeftSegmentState:UIControlStateNormal
            rightSegmentState:UIControlStateSelected
                   barMetrics:UIBarMetricsDefault];

    // Set background images
    UIImage *normalBackgroundImage = [UIImage imageNamed:@"segmented-control-normal"];
    [self setBackgroundImage:normalBackgroundImage
                    forState:UIControlStateNormal
                  barMetrics:UIBarMetricsDefault];
    UIImage *selectedBackgroundImage = [UIImage imageNamed:@"segmented-control-selected"];
    [self setBackgroundImage:selectedBackgroundImage
                    forState:UIControlStateSelected
                  barMetrics:UIBarMetricsDefault];

    [self setBackgroundImage:selectedBackgroundImage
                    forState:UIControlStateHighlighted
                  barMetrics:UIBarMetricsDefault];

    double dividerImageWidth = [self dividerImageForLeftSegmentState:UIControlStateHighlighted rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault].size.width;
        [self setContentPositionAdjustment:UIOffsetMake(dividerImageWidth / 2, 0)
                            forSegmentType:UISegmentedControlSegmentLeft
                                barMetrics:UIBarMetricsDefault];
        [self setContentPositionAdjustment:UIOffsetMake(- dividerImageWidth / 2, 0)
                            forSegmentType:UISegmentedControlSegmentRight
                                barMetrics:UIBarMetricsDefault];
return self;
}
Question

Ich arbeite an einer App, die sowohl auf iOS 6 als auch auf iOS 7 funktionieren soll und für beide das gleiche flache Design hat.

Ich versuche mein UISegmentedControl so anzupassen, dass es Ränder, Eckenradien und alles hat, aber ich kann nicht herausfinden, wie es geht. Ich habe bisher nur einen flachen Hintergrund.

Hat jemand einen Tipp, ein iOS 6 UISegmentedControl wie ein iOS 7 aussehen zu lassen?

EDIT:

ich würde gerne haben

Anstatt von






Links