次のコード行を使用して、のUIViewとして追加した のサブクラスがあります。titleViewnavigationItem
self.navigationItem.titleView = tempview;
簡単です。それはうまくいきます。私の問題は、これnavigationItemが時々rightBarButton更新されることです(ボタンがない場合もあれば、標準サイズのボタンが1つある場合もあれば、より大きなボタンがある場合もあります)。
として追加したクラスのlayoutSubviewsメソッドを簡単に使用できると考えたので、これを入れました:tempviewtitleView
-(void)layoutSubviews {
[super layoutSubviews];
self.mylabel.frame = self.bounds;
}
rightBarButtonアイテムが更新されたときにタイトルビューのサイズが正しく変更されないため、これは機能していないようです。
また、境界が小さくなると境界が拡大せず、単に位置が変わることにも気付きました。
私は and を使用してみましsetNeedsLayoutたlayoutIfNeededが、それらは単に間違った境界でビューを「サイズ変更」します。
また、アイテムが nil に設定されていることも確認しましたrightBarButtonが、縮小するとビューが正しく拡大されません。
助けてくれてありがとう!