カスタムの左右のUINavigationBarアイテムの左右に水平パディングを削除するにはどうすればよいですか? iOSがデフォルトで設定する10ポイントのパディングがあるようです。デフォルトの水平パディングなしでナビゲーションバーにUIBarButtonItemベースのカスタムビューを配置する
私は左と右のナビゲーションバーボタンをカスタマイズしています(私は自分のbackButtonItemを設定しようとしたので、私はleftBarButtonItemを使用しています)。
これらのカスタムボタンを押すと、AppleはleftBarButtonItemの左側とrightBarButtonItemの右側にいくつかのパディングを保存しているように見えます。 UIButtonのカスタム・バックグラウンドとイメージ・プロパティをどれだけ広げても、カスタム・ビューとして左/右のボタン・アイテム内に配置されます。
UIBarButtonItemsにはアクセスできる「フレーム」がないため、通常のUIViewと同様にスーパービュー内に配置することはできません。
このデフォルトパディングを削除する方法についてのご意見はありますか?私がゼロ幅に縮小しようとしているビットを参照するには、添付のスクリーンショットを参照してください。スクリーンショットでは、プラスアイコンは右にシフトして表示されています。強調表示された背景画像は、おそらくその挿入図を使用して、右側にクリップされています)。で
参照イメージ:参考https://skitch.com/starbaseweb/rj2e5/ios-simulator
、ここでは(この場合には、それは右のボタンです)私は私のカスタムUIBarButtonItemを作成しています方法は次のとおりです。
- (UIBarButtonItem *)customAddButtonItemWithTarget:(id)target action:(SEL)action {
UIButton *customButtonView = [UIButton buttonWithType:UIButtonTypeCustom];
customButtonView.frame = CGRectMake(0.0f, 0.0f, 45.0f, 44.0f);
[customButtonView setBackgroundImage:
[UIImage imageNamed:@"bgNavBarButton-OutsideRight-Normal.png"]
forState:UIControlStateNormal];
[customButtonView setBackgroundImage:
[UIImage imageNamed:@"bgNavBarButton-OutsideRight-Highlighted.png"]
forState:UIControlStateHighlighted];
[customButtonView setImage:
[UIImage imageNamed:@"bgNavBarButton-Add-Normal.png"]
forState:UIControlStateNormal];
[customButtonView setImage:
[UIImage imageNamed:@"bgNavBarButton-Add-Highlighted.png"]
forState:UIControlStateHighlighted];
[customButtonView addTarget:target action:action
forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *customButtonItem = [[[UIBarButtonItem alloc]
initWithCustomView:customButtonView] autorelease];
[customButtonView setImageEdgeInsets:UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 0.0f)];
//customButtonItem.imageInsets = UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 0.0f);
return customButtonItem;
}
+1:私はこの問題を抱えていて、インセットを含めて、x位置などで-10で画像を作ってみました。運がよかったので、ちょっとしたパディングとレッドそれをより適切にするためのイメージ。がんばろう。 –