2016-11-10 7 views
0

Ich füge benutzerdefinierte Titellabel und ein benutzerdefiniertes Bild zur Navigationsleiste hinzu. Ich kann das Titeletikett korrekt in der von mir gewünschten Position einfügen, aber ich kann horizontal das Bild auf dieses Label nicht zentrieren. Ich füge einen Screenshot und den Code hinzu, den ich verwenden kann, der helfen kann.Bild mit Titellabel in der Navigationsleiste zentrieren

enter image description here enter image description here

-(void)addIconInNavBar 
{ 
    CGSize imageSize = CGSizeMake(lblHeight, lblHeight); 
    CGFloat marginX = (self.navigationController.navigationBar.frame.size.width) - (imageSize.width/2); 
    CGFloat marginY = (self.navigationController.navigationBar.frame.size.height/2) - (imageSize.height/2); 

    imageView.frame = CGRectMake(marginX, marginY , imageSize.width, imageSize.height); 
    [self.navigationController.navigationBar addSubview:imageView]; 
} 

Antwort

0

Ich denke, ist die bessere Lösung custom view für den Titel der Navigationsleiste.

UIView* customViewWithImage = [self createCustomView]; 
self.navigationItem.titleView = customViewWithImage; 

Sie können Attribute des Titels aus dem title attributes Eigenschaft erhalten, können Sie auch diese Informationen von appearance erhalten.

0

Bitte aktualisieren Sie für centerX als

CGFloat marginX = (self.navigationController.navigationBar.frame.size.width - imageSize.width)/2; 

Oder

CGFloat marginX = (self.navigationController.navigationBar.frame.size.width/2) - (imageSize.width/2); 
+0

Ich möchte den benutzerdefinierten Titel nicht in der Mitte der Navigationsleiste zentrieren. – birdcage

0

es so verwenden,

Erstellen Sie Ihre benutzerdefinierte Ansicht und fügen Sie Etikett und Bild in Ihrem benutzerdefinierten Ansicht und fügen Sie diese benutzerdefinierte Ansicht als Titel Ansicht

UIView *vw = [[UIView alloc] initWithFrame:yourFrame]; 
UILabel *lbl = [[UILabel alloc] initWithFrame:lblFrame]; 
UIImageView *imgView = [[UIImageView alloc] initWithFrame:imgFrame]; 
[vw addSubView:lbl]; 
[vw addSubView:imgView]; 
self.navigationItem.titleView = vw; 
Verwandte Themen