2012-01-05 4 views
0

画像は:http://www.flickr.com/photos/[email protected]/6641626163/iOS、どのようにテキストの動的な長さを描画するには?

背景はUIImageViewで、青い部分を画像の「タイトル」として表示します。 私はUILabelを使用しましたが、テキストの長さは動的です。 1行または2行、最大で2行にすることができます。テキストが2行より長い場合は、切り捨てられます。

青い部分は、「Microsoft Wordのハイライト」のように見えるが、それは

が私を助けることができるだれでもあり「のiOS UILabel.textでハイライト」ではないでしょうか?

答えて

1

は、このコードを試してみてください:----

 CGSize maximumSize = CGSizeMake(320, 30); 

UILabel *newsLabel = [[UILabel alloc] init]; 
        newsLabel.textColor = [UIColor whiteColor]; 
        newsLabel.font = [UIFont boldSystemFontOfSize:11]; 
        newsLabel.backgroundColor = [UIColor clearColor]; 
        newsLabel.lineBreakMode = UILineBreakModeWordWrap; 
        newsLabel.numberOfLines = 0; 
        lineBreakMode:newsLabel.lineBreakMode]; 
        CGSize dateStringSize = [@"Text Input" sizeWithFont:newsLabel.font 
                     constrainedToSize:maximumSize 
                      lineBreakMode:newsLabel.lineBreakMode]; 
        CGRect dateFrame = CGRectMake(5, 5, 320, dateStringSize.height); //breath can be any desired float value 


        newsLabel.text = @"Text Input"; 
        newsLabel.textAlignment = UITextAlignmentCenter; 
        newsLabel.frame = dateFrame; 
+0

ありがとうございました。私はあなたのコードを試しました。それは私が望むものではありません。最後の行では、短い場合は、ラベルを中央にカットします。だから、それを解決するUILabelが2つあるかもしれません。しかし、私は最初の線を描く方法、2番目の線を描く方法、計算する方法を知らない。 – droughtrain

1

あなたは使用して、タイトルのために必要なピクセル単位でサイズを見つけることができます。

CGSize size = [UILabel.text sizeWithFont:yourFont]; 

もあります:

CGSize size = [UILabel.text sizeWithFont:yourFont lineBreakMode: yourLineBreakMode]; 

あなたは、その後にこれらの寸法(size.width、size.height)を使用することができますUILabelのフレームを設定します。

これが役に立ちます。 :)

関連する問題