/ / Benutzerdefiniertes UIButton-Netzhautbild, das auf dem iPad-Netzhautdisplay angezeigt wird - iphone, ios, ipad, ios5, ios6

UIButton benutzerdefinierte Retina-Bild in iPad Retina Display gestreckt - iphone, ios, ipad, ios5, ios6

Ich habe ein Problem mit dem iPad-Retina-Bild. Als ich mein Add im normalen iPad ausführte, sieht es großartig aus.

Aber wenn ich diese App dann im iPad Retina ausführe UIButton Benutzerdefinierte Bilder werden nach oben gestreckt.

Außerdem habe ich Bilder für "@ 2x" -Symbole für den Retina-Modus hinzugefügt.

Mit diesem Code:

UIButton *btnEye=[[UIButton alloc] initWithFrame:CGRectMake(10, 5.5, 35, 35)];
[btnEye setImage:eyeImage forState:UIControlStateNormal];
[reportToolbar addSubview:btnEye];

Im normalen Modus:

Bildbeschreibung hier eingeben

Im Reitna-Modus:

Bildbeschreibung hier eingeben

Bitte hilf mir.

Antworten:

1 für die Antwort № 1

Haben die Retina-Bilder wirklich eine doppelte Auflösung als normal oder dieselbe wie die normale?


0 für die Antwort № 2

Sie sollten einfach die "@ 2x" Bilder durch die normalen Bilder ersetzen, anscheinend sind die Größen der Bilder umgekehrt.


-2 für die Antwort № 3

Dieser Code würde den Schönheitswettbewerb nicht gewinnen, aber Sie könnten es versuchen!

Fügen Sie Ihrer Klasse eine Funktion hinzu, um zu erkennen, ob Sie ein Retina-Gerät haben

- (BOOL)isRetina {
return [self respondsToSelector:@selector(displayLinkWithTarget:selector:)] && (self.scale == 2.0);
}

Und wenn Sie das eyeImage einstellen, tun Sie dies

UIImageView *eyeImage = nil;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad && [self isRetina]) {
eyeImage = [UIImageView imageNamed:@"eye@2x.png"];
} else {
eyeImage = [UIImageView imageNamed:@"eye.png"];
}

Auf diese Weise erzwingen Sie, dass Ihr Gerät das Retina-Bild verwendet, wenn es eines hat :-).