0

titleView を の中央に配置しようとしていnavigationItemます。アプリをローカライズした後、次の動作が見られました。

前 後

extensionこれはtoとしての私のコードですnavigationItem:

extension UINavigationItem{
func makeImg(){


    let container = UIView(frame: CGRect(x: 0,y: 0,width: 200,height: 40))
    let logo = UIImage(named: "Rookie")
    let imageView = UIImageView(frame: CGRect(x: 66.75, y: 7.25, width: 66.5, height: 25.5))
    imageView.image = logo
    imageView.layer.masksToBounds = true
    imageView.clipsToBounds = true


    container.addSubview(imageView)
    self.titleView = container


}

}

これは、navigationItem の superView と関係があると思います。したがって、Screens 境界を参照する必要があります。何か案は?

4

1 に答える 1

3

これは、ビュー セットtitleViewが非常に広い場合に発生します。として追加されたビューはtitleView、幅が使用可能なスペースよりも広い場合にのみサイズ変更されます。その場合、左のバー ボタン項目と右のバー ボタン項目の間のスペースを埋めるようにサイズ変更されます。

この場合、containerオブジェクトの幅を 200 ポイントとして設定しました。これは、これらの両方のアイテムで使用可能なスペースよりも広いです。

containerイメージ ビューに合わせて幅を設定すると (つまり、66.5 ポイント)、中央に表示されます。:)

(または、逆に、他のビューを追加する予定がない場合は、イメージ ビューを として直接設定できますtitleView) 。

于 2016-12-13T18:31:19.193 に答える