2017-02-01 11 views
0

これは直感的なようですが、テキストを45分間画面に表示しないようにしようとしています。ここに私のviewDidLoad()です:複数の行ラベルと折り返し

override func viewDidLoad() { 
    super.viewDidLoad() 
    orgTitle.numberOfLines = 0 
    orgTitle.lineBreakMode = .byWordWrapping 
    orgTitle.frame.size.width = self.view.frame.size.width - 20 
    orgTitle.sizeToFit() 

    orgDesc.numberOfLines = 0 
    orgDesc.lineBreakMode = .byWordWrapping 
    orgDesc.frame.size.width = self.view.frame.size.width - 20 
    orgDesc.sizeToFit() 

    self.orgTitle.text = self.oTitle 
    self.orgDesc.text = self.desc 
    self.orgImage.image = self.image 
} 

私は、問題のスクリーンショットだけでなく、私のラベルの設定を取り付けました。 私はそれが非常に簡単にレイアウトを設定するのではなく、手動でフレームを調整するために、制約を使用して見つけるLabel Settings Screenshot of issue

+2

デバッガを使用してください。 'viewDidLoad'でフレームのサイズを見てください。フレームに頼るのは早すぎる。 – rmaddy

+0

それはそれだとは思わない。それは私の最近の追加であり、何も変わっていない。私はそれ以来それを取り除き、何も変わらなかった。 –

答えて

2

...

しかし、何らかの理由で、手動でラベルのフレームを設定したい場合など@rmaddyが言及よう

  1. 同様、viewDidLoadが早すぎるフレームのビューコントローラのライフサイクルで正しいことがある:私は二つのことをお勧めしたいです。 layoutSubviewsを無効にして、フレーム調整をその方法に移動してみてください。

  2. numberOfLinesが0に設定されているUILabelについては、ラベルの数を把握するのに役立つように、ラベルpreferredmaxlayoutwidthを設定することもできます(制約を使用する場合は必要ありません)。また

、あなたは上記のiOS9をターゲットとして喜んでいる場合は、UIStackViewはサブビューが複数行のラベルの潜在的な増加高さから下にプッシュされますレイアウトのこの種のを支援するためのUIKitには本当に素晴らしい追加です。

ここで2 UILabelsを保持するためにスタックのビューを追加し、その後スーパーにstackviewの左、上、右縁部をピン制約のいくつかのスクリーングラブは、次のとおりに定義されたレイアウトで

enter image description here

あなたのストーリーボードでは、ラベルの実際のコンテンツを設定するだけで、viewDidLoadがもっと簡単になります。

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.orgTitle.text = self.oTitle 
    self.orgDesc.text = self.desc 
    self.orgImage.image = self.image 
} 
+0

フレームを設定するのはむしろ大したことではありません。それ以外の方法はどうすればいいですか? –

+0

@EthanKleinは、あなたのストーリーボードにスタックビューと制約を追加するいくつかのスクリーングラブで答えを更新しました。 – MathewS

+0

私はスタックビューの設定を完了しました。途中で信じられないほど奥深いガイドをありがとうございました。私は今戻って、ラベルの行番号/改行設定を変更する必要があるかどうか疑問に思っていますか? –

関連する問題