UIButtonがあり、ボタンのテキストはランダマイザーで埋められています。ただし、私の問題は、テキストの文字数が多すぎて、ボタンにテキスト全体が表示される場合があることです。
文字が多すぎるかどうかを確認してから、残りのテキストを別のテキスト行にドロップすることはできますか?では、基本的にUIButtonの行ではなくテキスト行を使用する必要がありますか?
Objective-C
button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
button.titleLabel.numberOfLines = 2;
button.titleLabel.textAlignment = NSTextAlignmentCenter; // if u need
それ以外の場合はこれを使用します
button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
button.titleLabel.textAlignment = NSTextAlignmentCenter;
[button setTitle: @"Line1\nLine2" forState: UIControlStateNormal];
スイフト
button.titleLabel!.lineBreakMode = .ByWordWrapping
button.titleLabel!.numberOfLines = 2
button.titleLabel!.textAlignment = .Center
それ以外の場合はこれを使用します
button.titleLabel!.lineBreakMode = .ByWordWrapping
button.titleLabel!.textAlignment = .Center
button.setTitle("Line1\nLine2", forState: .Normal)
Swift
buttonName.titleLabel!.lineBreakMode = .byWordWrapping
buttonName.titleLabel!.textAlignment = .center
buttonName.setTitle("Line1\nLine2", for: .normal)
ストーリーボードまたは.xibファイルを使用していると仮定して、ボタンをクリックして右側の属性インスペクターを開き、[ボタン]セクションで[改行]フィールドを探します。これをドロップダウンすると、(とりわけ)2つのオプションが表示されます-「文字の折り返し」と「ワードラップ」。これらは、必要な機能を提供します。
または、コードで次のいずれかを使用できます
[BUTTON setLineBreakMode:NSLineBreakByWordWrapping]
[BUTTON setLineBreakMode:NSLineBreakByCharWrapping]
ワードラップではなく自動レイアウトを使用すると、UILabelが大きくなるという問題がありました。解決策は、preferredMaxLayoutWidthを設定して、テキストを強制的に折り返すことでした。
ボタンの場合、次を使用して同じことを行うことができます。
button.titleLabel.preferredMaxLayoutWidth = <max width required>.