2011-07-20 21 views
0

我有一個UILabel,它在第三代iPod上的行爲與第三代&不同。UILabel在第三代和第四代iPod上的顯示方式不同

我的UILabel是:

<UILabel: 0x881e80; frame = (10 76; 70 28); text = 'Produits Indisponibles'; clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x863fe0>> 

現在,第四代iPod它工作正常,文本換行到2號線正常,但在第三代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]; 
+0

似乎符合邏輯,您的標籤可能不夠寬,無法顯示整個單詞。 – FreeAsInBeer

回答

3

視網膜顯示器使用Helvetica Neue作爲系統字體,而較老的模型使用普通的Helvetica。這可能與不同的字體指標有關。對你知道的字體進行硬編碼,以查看它們是否一致顯示。

0

我沒有看到原因,但當我增加了2個像素的幀的寬度的工作。任何人都知道這樣做的原因是有啓發性的。

相關問題