我必须在UILabel中显示货币和价格。在一个标签中,但使用不同的字体大小。现在看起来像这样:
...并且我做到了覆盖drawTextInRect:像这样:
- (void)drawTextInRect:(CGRect)rect{
CGSize textSize = [self.text sizeWithFont:self.font];
textSize.width -= textSize.width/12;
CGRect analogRect = CGRectMake(0, 0, textSize.width, self.frame.size.height);
CGPoint centrino = self.center;
self.frame = analogRect;
self.center = centrino;
NSString *currency = [self.text substringWithRange:NSMakeRange(0, 3)];
NSString *amount = [self.text substringWithRange:NSMakeRange(3, self.text.length - 3)];
self.text = currency;
self.textAlignment = UITextAlignmentLeft;
self.font = [UIFont fontWithName:@"Helvetica-Bold" size:30.];
self.baselineAdjustment = UIBaselineAdjustmentAlignBaselines;
[super drawTextInRect:analogRect];
self.text = amount;
self.textAlignment = UITextAlignmentRight;
self.font = [UIFont fontWithName:@"Helvetica-Bold" size:40.];
[super drawTextInRect:analogRect];
}
很好,不是吗?
但是我需要使货币和底部的价格保持一致,如下所示:
如您所见,我需要强制降低“ EUR”,因为它的尺寸较小且居中,因此看起来较高。
请提出一种方法。
提前致谢!
注意:
使用2个不同的标签对我不利。我要在一个标签上做。
最佳答案
有两个想法:1)由于要对UILabel进行子类化,因此可以在子类的实现中放置货币类型的第二个标签,并且您的视图仍会认为只有一个标签。 2)由于NDA今天在iOS 6上取消,因此我建议您看一下属性字符串。哦,+ 1是写“ UILabel”而不是“ UILabel”。