0

ラベルに表示したい次の文字列があります。

 NSString *criticsScore=[NSString stringWithFormat:@"%@\%%",[dict objectForKey:@"critics_score"]];

 _criticRating.text=criticsScore;

\%%に小さいフォント、大きいフォントを設定したいのですが[dict objectForKey:@"critics_score"]];
可能ですか?

4

3 に答える 3

8

NSAttributedStringなどを描画するには、独自のコントロールを使用する必要がありますTTTAttributedLabel

NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"Blah1:blah-blah%d. Blah2:-%d%%", [currentCoupon.couponPrice intValue],[currentCoupon.couponDiscountPercent intValue]];
[str addAttribute:NSBackgroundColorAttributeName value:[UIColor clearColor] range:NSMakeRange(0,30)];/// Define Range here and also BackGround color which you want
[str addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(0,30)];/// Define Range here and also TextColor color which you want
[str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:20.0] range:NSMakeRange(20, 10)];
lblWithText.attributedText = str;

上記のコードから、ラベル内の単一の文字列で複数のフォント スタイルを使用する方法を教えてください。

于 2013-03-26T20:13:55.903 に答える
0

この投稿を読んでください。SくらいNSAttributedStringです。それがあなたが必要としているものだと思います。

于 2013-03-26T20:04:28.063 に答える
0

2 つの UILabels でそれを行う必要があります。最初のラベルを \%% を除くすべてのテキストに設定し、そのラベルに含まれるテキストで sizeWithFont: を使用してそのラベルのサイズを取得します。次に、2 番目のラベルをそのラベルのフレームの最後から開始するように設定します。

したがって、ラベルが必要な場所に基づいて座標を変更すると、次のようになります。

NSString *criticsScore = [NSString stringWithFormat:@"%@",[dict objectForKey:@"critics_score"]];
NSString *str2 = @"\%%";

UIFont *criticsFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];
UIFont *font2 = [UIFont systemFontOfSize:12.0];

//Get the sizes of each text string based on their font sizes.
CGSize criticsSize = [criticsScore sizeWithFont:criticsFont];
CGSize size2 = [str2 sizeWithFont:font2];


int x = 0;
int y = 0;
//The first label will start at whatever x and y are.
UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(x,y,criticsSize.width,criticsSize.height)];
[label1 setFont:criticsFont];
//Create a second label with the x starting at x+criticsSize.width;
//The y will start at y+criticsSize.height-size2.height, so that it will be aligned with the bottom.
//Change these to align it differently.
UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(x+criticsSize.width,y+criticsSize.height-size2.height,size2.width,size2.height)];
[label2 setFont:font2];
[self.view addSubview:label1];
[self.view addSubview:label2];
于 2013-03-26T20:06:26.587 に答える