2016-12-13 7 views
0

Ich versuche, meine titleView in meinem navigationItem zu zentrieren. Nach meiner App lokalisierende, sah ich dieses Verhalten:Zentrierung titleView in navigationItem

Before After

Dies ist mein Code als ein extension zu navigationItem:

extension UINavigationItem{ 
func makeImg(){ 


    let container = UIView(frame: CGRect(x: 0,y: 0,width: 200,height: 40)) 
    let logo = UIImage(named: "Rookie") 
    let imageView = UIImageView(frame: CGRect(x: 66.75, y: 7.25, width: 66.5, height: 25.5)) 
    imageView.image = logo 
    imageView.layer.masksToBounds = true 
    imageView.clipsToBounds = true 


    container.addSubview(imageView) 
    self.titleView = container 


} 

} 

Ich denke, es ist etwas mit meinem superview zu tun hat, in navigationItem. Also sollte ich die Screens Grenzen verweisen. Irgendwelche Ideen?

+0

Gibt es einen bestimmten Grund, warum Sie den Imageview in Behälter wickeln? Sie können die Bildansicht direkt als Titelansicht festlegen. – Ryan

Antwort

1

Dies tritt auf, wenn die Ansicht titleView sehr breit ist. Ansichten, die als titleView hinzugefügt werden, werden nur dann skaliert, wenn ihre Breite größer ist als der verfügbare Platz. In diesem Fall wird die Größe so geändert, dass sie das Feld zwischen dem linken und dem rechten Balkenelement ausfüllt.

In diesem Fall haben Sie Ihr Objekt container als 200 Punkte breit festgelegt, was breiter ist als der verfügbare Platz mit diesen beiden Elementen.

Wenn Sie die Breite container auf die Bildansicht (d. H. 66,5 Punkte) einstellen, sollte sie zentriert werden. :)

(Oder umgekehrt, wenn Sie irgendwelche anderen Ansichten nicht hinzufügen möchten, können Sie die Bildansicht direkt als titleView eingestellt)

+0

versuchte es direkt zu machen. Lief wie am Schnürchen. Vielen Dank – JVS

+1

Keine Sorgen! Froh, dass ich helfen konnte! :) – TiM

Verwandte Themen