Ich habe eine Unterklasse UINavigationBar, wo ich DrawRect überschreiben, um ein PNG mit Transparenz als Hintergrund zu bieten. Alles funktioniert wie erwartet, abgesehen von einem 1 Pixel großen Feld oben in der Leiste (ich kann die darunterliegende Karte im Raum bewegen).Benutzerdefinierte UINavigationBar ist um 1 Pixel an der Spitze
Das Einzige, was ich finden konnte, ist diese Frage, die wie mein Problem klingt, aber ich weiß nicht, was die Erklärung zu machen: Empty space of 1 pixel above UINavigationBar
ich überprüft habe, dass die PNG-Datei tut nicht 1 Pixel Transparenz am oberen Rand des Bildes.
Zwingende in subclassed UINavigationBar:
- (void)drawRect:(CGRect)rect {
[_bg drawInRect:CGRectMake(0, 0, _bg.size.width, _bg.size.height)];
// showing correct bounds - drawRect: 0.000000, 0.000000, 320.000000, 85.000000
NSLog(@"drawRect: %f, %f, %f, %f", rect.origin.x,
rect.origin.y,
rect.size.width,
rect.size.height);
}
- (CGSize)sizeThatFits:(CGSize)size {
CGRect frame = [[UIScreen mainScreen] applicationFrame];
CGSize sz = CGSizeMake(frame.size.width, _bg.size.height);
NSLog(@"sizefits");
return sz;
}
Vielen Dank für jede Hilfe!
Haben Sie ein 24/32bit PNG-Bild oder ein 8bit One? –
Hallo Er, danke für die Antwort. Ich habe es verifiziert, und es ist 32-Bit. Irgendwelche Ideen? – Matt