6

self.navigationItem.rightBarButtonItemsナビゲーションバーのアイテムをセットアップするために使用しています。ただし、バー ボタンについては、カスタム ビュー (ボタン) を使用しています。ボタン間に間隔があることがわかります。どうすればこれを削除できますか?

4

4 に答える 4

13

遅すぎることはわかっていますが、次の使用方法をUIBarButtonItem 使用して解決しました

[barbuttonitem setImageInsets:UIEdgeInsetsMake(0, -30, 0, -70)];
于 2014-08-11T12:09:14.257 に答える
3

削除することはできません。カスタム ビューを使用してバー ボタン アイテムを作成することで、この問題を回避できます。カスタム ビューには、カスタム ボタンがすべてサブビューとして追加されます。このようにして、正確な位置を直接制御できます。

于 2013-07-04T16:53:34.707 に答える
2

この問題を解決する方法の例を次に示します。

UIBarButton の拡張機能を作成する

extension UIBarButtonItem
{
    /** Create custom right bar button for reduce space between right bar buttons */ 
    func initRightButton(let imageNamed:String, let target:UIViewController, let selector:Selector) -> UIBarButtonItem {  
        let frame = CGRectMake(0, 0, 30, 30)
        //Create imageView
        let imageView = UIImageView(frame:frame)
        imageView.image = UIImage(named: imageNamed)
        //Create Button
        let button = UIButton(frame: frame)
        button.addTarget(target, action: selector, forControlEvents: .TouchUpInside)
        //Create View and add imageView and Button
        let view = UIView(frame: frame)
        view.addSubview(imageView)
        view.addSubview(button)
        return UIBarButtonItem(customView: view)
    }
}

クラス コントローラで、customizeNavigationBar メソッドを使用します。

func customizeNavigationBar()  {
    //Create custom right bar button chat for reduce space between right bar buttons
    let barButton1 = UIBarButtonItem().initRightButton("customImageNamed1", target: self, selector: customSelector)
    let barButton2 = UIBarButtonItem().initRightButton("customImageNamed2", target: self, selector: customSelector)
    self.navigationItem.rightBarButtonItems = [barButton1,barButton2]
}
于 2016-08-16T15:30:34.507 に答える