8

NSAttributedStringの段落の行数を制限する方法はありますか? NSAttributedString
に 2 つの文字列を追加します。それらを最大 3 行にしたいのですが、最初の文字列は 1 ~ 2 行になり、必要に応じて切り捨てられます。2番目の文字列は常に最後の行にある必要があります 。

this is my first string
if its too long i't will get trun...
But this is my second string

私がしたことは:

    // First string
    NSAttributedString *first = [[NSAttributedString alloc] initWithString:@"this is my first string if its too long i't will get trunticated"
                                                               attributes:@{NSForegroundColorAttributeName:[UIColor redColor],
                                                                            NSFontAttributeName:[UIFont fontWithName:@"HelveticaNeue-Light" size:17.0]];
    [str appendAttributedString:first];

    // New line
    [str appendAttributedString:[[NSAttributedString alloc] initWithString:@"\n"]];

    // Add photo count
    NSAttributedString *second = [[NSAttributedString alloc] initWithString:@"But this is my second string"
                                                                attributes:@{NSForegroundColorAttributeName:[UIColor redColor],
                                                                             NSFontAttributeName:[UIFont fontWithName:@"HelveticaNeue-Light" size:14.0]}];
    [str appendAttributedString:second];

しかし、結果は次のとおりです。

this is my first string
if its too long i't will get
trunticated

最初の文字列は最初の 3 行を取り、2 番目の文字列をラベルから押し出します。
最初の文字列段落を 2 行に制限するにはどうすればよいですか?

4

2 に答える 2

1

これを確認するために、グラフィック コンポーネント (UITextView または UITextField) が大文字と幅の広いものを繰り返し使用して処理できる文字数を数えることができます。よりも、使用:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{}

金額が十分かどうか、またはさらに多くの文字を入力できるかどうか、すべての入力を確認します。文字制限を作成し、このメソッドが呼び出されるたびに減らします。

于 2015-12-29T20:27:26.980 に答える
0

1つの制約で行数を制限してください!

次の値を使用して、UILabel に NSLayoutConstraint を追加するだけです。

  • attribute = NSLayoutAttributeHeight (ストーリーボードの「高さ」)
  • 関係 = NSLayoutRelationLessThanOrEqual (ストーリーボードの「より小さいか等しい」)
  • 定数 = 希望する行数に対する高さ

ストーリーボードの統合を参照してください。

ストーリーボードの統合を見る

于 2015-07-15T17:24:50.620 に答える