4

我正在开发一个基于产品的应用程序,其中显示带有价格增量或减量的产品名称。

截至目前,根据我的要求,我将 UIImage 作为子视图插入到 UILabel。但是每次我需要计算产品名称长度时,我都会在其上定义 UIImage 的 x 位置并一次又一次地添加它。产品名称是可变的尺寸。

有时图像的 x 位置根本无法正确设置,因此它与 UILabel 上的文本重叠。我遇到了这个问题。

以下是我对此类要求的努力。可能应该有另一种方法来做这些事情,但我不知道。我可以申请任何其他替代方案吗?

int level=3;
NSString *product=@"Pea Price:";

UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 20, 25)];
[imgView setImage:[UIImage imageNamed:@"up.png"]];

CGRect rect=[imgView frame];

UILabel *label=[[UILabel alloc] initWithFrame:CGRectMake(20, 70, 200, 30)];
label.backgroundColor=[UIColor whiteColor];

CGSize size=[product sizeWithFont:label.font constrainedToSize:CGSizeMake(MAXFLOAT, 30) lineBreakMode:NSLineBreakByTruncatingTail];
rect.origin.x=size.width-5;
[imgView setFrame:rect];

label.text=[NSString stringWithFormat:@"%@  (%i%%)",product,level];
[label addSubview:imgView];
[self.view addSubview:label];
4

3 回答 3

5

你可以这样使用

label.text=[NSString stringWithFormat:@"%@ ⬆\uFE0E (%i%%)",product,level];
label.text=[NSString stringWithFormat:@"%@ ⬇\uFE0E (%i%%)",product,level];

只需将此箭头图像复制并粘贴到 NSString。

更改标签的前景色将更改箭头颜色。

从此处获取要粘贴的其他图像

箭头——http : //www.alanwood.net/unicode/miscellaneous_symbols_and_arrows.html

圆形数字——http : //www.alanwood.net/unicode/enclosed_alphanumerics.html

图片——http : //www.alanwood.net/unicode/miscellaneous_symbols.html

微笑——http : //www.alanwood.net/unicode/emoticons.html

杂项——http : //www.alanwood.net/unicode/miscellaneous-symbols-and-pictographs.html

于 2013-07-02T11:59:05.253 回答
1

您可以将 Unicode 字符用于箭头(⬈ 和 ⬊),将 NSAttributedStrings 用于颜色,甚至可以使用表情符号:↗ 和 ↘(在模拟器中查看此页面以查看它们)。

于 2013-07-02T11:54:29.690 回答
-1

实现这一点的最简单方法是使用 aUIWebView并将图像作为 HTML 标记插入。但就性能而言,它并不是很好。

于 2013-07-02T11:23:26.820 回答