私は自分のアプリケーションがこのように振る舞うようにしたい:中心に二つのビュー
私がこれらの手順に従っ私NavigationItem.titleView
のための正確な動作を有することが重要ですこれまでのところ:
アプリケーションで3つのビューをプログラムで作成しています。
(1)container
=>(2)を保持し、(3)=> gestureRecognizerが
let container = UIView(frame: CGRectMake(0,0,200,40))
が結合している(2)imageContainer
=>は=イメージ
let imageContainer = UIImageView(frame: CGRectMake(0, 0, 30, 30))
imageContainer.image = UIImage(named: "mock.jpg")
(3)textContainer
を有します>私はそれらを揃えるために、画像の中心を設定しています以下のいくつかのテキスト
let textContainer = UILabel(frame: CGRectMake(0,0, 180, 20))
textContainer.text = "Group xY"
を持っています
imageContainer.center = CGPointMake(container.frame.size.width/2,
container.frame.size.height/2)
textContainer.center = CGPointMake(container.frame.size.width/2,
container.frame.size.height/2)
は今、私はtitleViewの要素が適切に配置されていないことを、私のビューにすべてのサブビューを追加し、アプリのショーを開始
self.navigationItem.titleView = (1)
を設定しています
この正確な動作を正しく実装する方法はありますか?
注:は円形のイメージを心配しません。私はこれを実装する方法を知っています。
ありがとうございました。これは大いに役立ちます。ビューの最大幅を設定する方法はありますか?長いテキストを入力すると、Navbar全体が表示されますが、Navigationbar.barButtonItemsを持たせたい場合は – JVS
私の回答を更新しました。 'sizeToFit'の後にラベルの幅を確認することができます。最大幅よりも大きい場合は、最大幅に設定します(例えば' min(maxWidth、textContainer.frame.size.width) ')。ラベルの縮尺率を調整して収縮させてください。おそらくタイトルの束を縮小したくないかもしれません。 – beyowulf