2014-01-13 20 views
6

私は長方形の中の複数行に省略記号付きのテキストを描画しようとしています。 NSLineBreakByTruncatingTailについては複数行のテキストが省略されていない

、ドキュメントが

を述べ行初めはコンテナに収まるように表示され、行の末尾に不足しているテキストは省略記号グリフで示されています。このモードは複数行テキストでも機能しますが、1行テキストで使用されることがよくあります。

が、そのモードで私は、単一の行を取得:

With NSLineBreakByWordWrapping

With NSLineBreakByTruncatingTail

をしかしNSLineBreakByWordWrappingで、私は長すぎるテキストの省略記号を得ることはありませんどちらの画像も下の同じコードを使用します(赤い背景はテキスト描画矩形です)。もちろん、同じ矩形サイズなので、2行はd無期限にフィットします。

NSMutableParagraphStyle* paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; 
paragraphStyle.lineBreakMode = <<see above>>; 
paragraphStyle.alignment = NSTextAlignmentNatural; 
NSDictionary* drawingAttributes = [NSDictionary dictionaryWithObjectsAndKeys: 
            [UIFont fontWithName:@"HelveticaNeue" size:36], 
            NSFontAttributeName, 
            paragraphStyle, 
            NSParagraphStyleAttributeName, 
            nil]; 

const CGRect rect = CGRectMake(...); 
[@"I do not get ellipsized in any way" drawInRect:rect withAttributes:drawingAttributes]; 

ドキュメントが言うように、複数行のレンダリングでellipsizing結合する方法はありますか? UILabelでは、行数を1以外に設定するだけで済みますが、コードによるテキストレンダリングはどうでしょうか?

+0

私は複数行を意味するとは...スクロールバー。そして、2行のテキストフィールドが必要です。したがって、2つのtextFieldを作成できます。もう1つはもう1つの切り捨てテールです。 –

+0

これはUIコントロールではなく、コードによるテキストレンダリングについてです! – AndiDog

+0

ええ、テキストはUIでレンダリングされます。そして、唯一のUIがいずれの方法でも表示されます。 2つのUIをお持ちの場合は、これを行うことができます。おそらく、このrequiremntでカスタムUIを作成する必要があります。 –

答えて

1

なぜ私はNSMutableParagraphStyleとdrawInRectを使用しているのか分かりません。おそらく、動作しようとしているコンテキストに関する詳細情報が必要になるでしょう。

しかし、この単純な技術を使用して:

UILabel *label = [[UILabel alloc] initWithFrame:(CGRect){0,0,300,100}]; 
label.numberOfLines = 0; 
label.backgroundColor = [UIColor redColor]; 
label.center = self.view.center; 
label.font = [UIFont fontWithName:@"HelveticaNeue" size:36]; 
label.textAlignment = NSTextAlignmentNatural; 
label.lineBreakMode = NSLineBreakByTruncatingTail; 
label.text = @"I do not get ellipsized in any way"; 

[self.view addSubview:label]; 

あなたは次のような結果が表示されます: enter image description here

私の提案は、この場合にはdrawInRectを取り除くことですが。

関連する問題