我有一个UILabel,在第三代和第四代iPod上的行为有所不同。
我的UILabel是:
<UILabel: 0x881e80; frame = (10 76; 70 28); text = 'Produits Indisponibles'; clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x863fe0>>
现在,在第4代iPod上它可以正常工作,并且文本可以正确地换行为2行,但是在第3代iPod上,文本换行后第二个单词(Indisponibles)消失了。可能是什么原因?
如果我将帧宽度再增加1个像素,则效果很好。这是我的代码:
self.titleLabel = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
self.titleLabel.text = @"Produits Indisponibles";
self.titleLabel.isAccessibilityElement = NO;
self.titleLabel.backgroundColor = [UIColor clearColor];
self.titleLabel.opaque = NO;
self.titleLabel.textColor = [UIColor whiteColor];
self.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
self.titleLabel.numberOfLines = 2;
self.titleLabel.highlightedTextColor = [UIColor whiteColor];
self.titleLabel.baselineAdjustment = UIBaselineAdjustmentAlignBaselines;
self.titleLabel.textAlignment = UITextAlignmentCenter;
self.titleLabel.font = [UIFont boldSystemFontOfSize:11];
CGSize aLabelSize = CGSizeMake(self.frame.size.width - 20, 28);
CGSize aStringSize = [self.titleLabel.text sizeWithFont:self.titleLabel.font constrainedToSize:aLabelSize lineBreakMode:UILineBreakModeWordWrap];
CGFloat theYOrigin = self.bounds.size.height - 34;
if (aStringSize.height < 15) {
theYOrigin = theYOrigin + 14;
}
self.titleLabel.frame = CGRectMake(10, theYOrigin, aLabelSize.width, aStringSize.height);
[self addSubview:self.titleLabel];
最佳答案
视网膜显示器使用Helvetica Neue作为系统字体,而旧型号则使用普通的Helvetica。这可能与不同的字体指标有关。硬编码您所知道的字体,以查看它们是否一致显示。