カスタムナビゲーションアイテムのタイトルは、.xibファイルから読み込まれた2つのラベル(上に重なるもの)です。カスタムナビゲーションタイトルのオフセットios 11
それは、これを呼び出すことによって読み込まれています:それはこのように定義されます
class Utilities {
/// Title and subtitle format custom title in Navigation bar. Top and bottom text are centered on one another.
///
/// - Parameters:
/// - navigationItem: The receiving controller's navigation item.
/// - titleText: Top text to be displayed a little larger and more bold.
/// - subtitleText: Bottom text to be displayed a little smaller and less bold.
class func addCustomNavigationTitle(navigationItem: UINavigationItem, titleText: String, subtitleText: String) {
let customNavigationTitleView = LabelSubLabelCustomHeaderView.instanceFromNib() as! LabelSubLabelCustomHeaderView
customNavigationTitleView.titleLabel.text = titleText
customNavigationTitleView.dateLabel.text = subtitleText
navigationItem.titleView = customNavigationTitleView
}
...
}
:今
class LabelSubLabelCustomHeaderView: UIView {
@IBOutlet var titleLabel: UILabel!
@IBOutlet var dateLabel: UILabel!
class func instanceFromNib() -> UIView {
return UINib(nibName: "LabelSubLabelCustomHeaderView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
}
}
、下のラベルを隠している、正確に22ピクセルによって押し下げられています。
このビューのフレームをviewDidAppearに設定すると、ビューをまっすぐに設定する必要があります。私はviewWillAppearと他のいくつかのことを試みました。私は文字通りそれを隠す必要があります、それを設定し、それを表示しますが、それは明らかに正しくありません。
iOS 11より前では問題ありませんでした。
ここでは私が右に作ることを願って、私のハック修正、なしで、今です:
そして、ここではそれはそれはiOSの10の前にどのように見えるか、どのように見えるかで、それは私のハック修正でどのように見えるか:
も低すぎる22個のピクセルである、アンワインドセグエがアニメーション化されたときに、ビューが不正のフレームに戻りますので、ご注意ください。 どうすればこの問題を解決できますか?事前に助けていただきありがとうございます。編集:より詳細な制約情報:
を参照してください。エラー/解決策がレイアウトの制約になると思います。 – ekscrypto
ありがとうございます。だから私は制約を示すスクリーンショットを置くのですが、私は先に進み、より詳細なスクリーンショットを表示することができます...私は元の投稿を編集します、私は推測します... –
さて、私はスクリーンショットを追加しました。これは.xibからロードされ、ナビゲーションアイテムのカスタムタイトルビューとして設定されていることに注意してください。ロードされたビューに制約を設定する方法、またはそれが可能であるかどうかはわかりません。私はナビゲーションアイテムが私のためにそれをすると思うだろう。いずれにしても、iOS 11以前の現在の制約でうまくいきました。 –