2016-04-15 4 views
1

UINavigationbarにカスタム戻るボタン画像を入れています。ナビゲーションバー戻るボタンカスタム画像yオフセット

func setBackButton() 
{ 
    let backImg: UIImage = UIImage(named: "BackButton")! 
    UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffset(horizontal: 0, vertical: -60), forBarMetrics: .Default) 

    UINavigationBar.appearance().tintColor = UIColor.goldenColor() 
    UINavigationBar.appearance().backIndicatorImage = backImg 
    UINavigationBar.appearance().backIndicatorTransitionMaskImage = backImg 
} 

カスタムイメージは正しく設定されていますが、配置が適切ではありません。戻るボタンのy軸は下のy軸に移動します。それをナビゲーションバーの中央に揃える方法。

マイback button image dimensionsある34 * 9(1回)、68 * 18(2倍)、135 * 36(3回)

enter image description here

+0

通常、バーのボタンは中央に配置されます。画像の高さが高いと思うので、このように表示されます。 –

+0

私のバックボタンの画像の大きさは34 * 9(1x)、68 * 18(2x)、135 * 36(3x) – pkc456

+0

です。次に、バックバーのボタンの背景色を設定してください。あなたは正確な問題を見つけることができます –

答えて

0

次の好きなようにバックボタンを設定してみてください、

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 

if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) 
    [button setImageEdgeInsets:UIEdgeInsetsMake(0, -10, 0, 0)]; 
else 
    [button setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; 

UIImage *btnImage = [UIImage imageNamed:@"back.png"]; 
[button setImage:btnImage forState:UIControlStateNormal]; 
[button setImage:btnImage forState:UIControlStateHighlighted]; 
button.frame = CGRectMake(0, 0, 30, 45); 
button.backgroundColor = [UIColor redColor]; 
[button addTarget:self action:@selector(backBtnAction) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:button]; 
self.navigationItem.leftBarButtonItem = backButton; 
+0

私はすべてのviewcontrollerに上記のコードを入れなければなりません。私はアプリ全体でカスタム戻るボタンをしたい。それで私はUINavigationBar.appearance()を使用しています。どんな代替? – pkc456

+0

UIBarButton項目のカテゴリを作成してそこにコードを実装し、すべてのView Controllerからメソッドを呼び出して、目的の出力を得ることができます。または単純なNSObjectファイルはそこにコードを入れ、すべてのviewControllerから呼び出すと、同じ出力が得られます。 –

+0

上記のコードは期待通りにうまく機能していますか?それが正しい答えとしてマークしてください。 –

関連する問題