0

検索バーをナビゲーション titleView に設定すると、

navigationController?.navigationBar.topItem?.titleView = self.searchBar

、しかし、次のような自動レイアウトを使用してフレームを設定しました:

self.searchBar.snp_makeConstraints { make in
        make.left.equalTo(leftSpace)
        make.right.equalTo(-leftSpace)
        make.top.equalTo(10)
        make.height.equalTo(44)
}

、別のView Controllerにプッシュすると壊れます。

そして、この方法を使用してフレームを設定すると:

self.searchBar.frame = CGRectMake(leftSpace, 0, screenSize.width - 2 * leftSpace, 44)

それはうまくいく...

誰でも理由を教えてもらえますか?どうも...

4

1 に答える 1

0

TitleView のレイアウトは、ナビゲーション コントローラーによって管理されます。ビューに追加した制約は、titleView に追加すると無視されます。ナビゲーション バーを完全にカスタマイズしたい場合は、独自のビューを作成することをお勧めします。

于 2016-09-21T09:24:45.200 に答える