2016-11-10 6 views
0

ナビゲーションバーにカスタムタイトルラベルとカスタムイメージを追加します。私は正しく私が望む位置にタイトルラベルを追加することができます横にイメージをそのラベルに集中させることはできません。私はスクリーンショットと私が助けることができるコードを追加しています。ナビゲーションバーのタイトルラベル付きイメージのセンタリング

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]; 
} 

答えて

0

私は、よりよい解決策は、ナビゲーションバーのタイトルのためにcustom viewを使用していると思います。

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

また、あなたがappearanceからこの情報を取得することができ、title attributesプロパティからタイトルの属性を取得することができます。

0

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

それとも

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

ナビゲーションバーの中心にないカスタムタイトルを中心にしたい。 – birdcage

0

は、カスタムビューを作成し、カスタムビューにラベルと画像を追加し、このカスタムを追加し、このようにそれを使うようcenterXのために更新してくださいタイトルビューで表示

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; 
関連する問題