2011-08-19 116 views
4

enter image description here我想在UILabel中使用特殊字符。但它正在剔除標籤。我在紅色背景中顯示標籤邊緣的位置。任何可能發生這種情況的原因?我將maskToBounds和clipToBounds設置爲NO;UILabel被切斷的字母

CGSize lblSize = [FontHelper sizeForText:text withFont:[self getBodyFont] withWidth:kColumnWidth andNumberOfLines:1000]; 
      UILabel*lbl = [[UILabel alloc] initWithFrame:CGRectMake(x, 
                    y + body.frame.size.height - columnHeight - kBottomMargin, 
                    kColumnWidth, 
                    lblSize.height)]; 
      lbl.clipsToBounds = NO; 
      lbl.layer.masksToBounds = NO; 
      lbl.text = text; 
      lbl.backgroundColor = [UIColor redColor]; 
      lbl.font = [self getBodyFont]; 
      lbl.textColor = [UIColor blackColor]; 
      lbl.numberOfLines = 0; 
      lbl.textAlignment = UITextAlignmentLeft; 
      lbl.lineBreakMode = UILineBreakModeWordWrap; 
+0

我的猜測是kColumnWidth比它需要更寬。我將在Interface Builder中提供此視圖以幫助您解決問題。注意:有時IB可能在視覺上欺騙。如果您沒有注意到標籤右邊緣的圓形拖拽點,那麼IB很可能會將您的標籤自動調整爲比屏幕更寬。仔細檢查尺寸參數,然後嘗試逐像素調整寬度以查看它在哪一點處換行到下一個單詞。我還會臨時設置'adjustsFontSizeToFitWidth'來看看發生了什麼。 – darvids0n

+0

由於應用中沒有NIB文件,我無法真正在IB中構建它。我相信它確實與「•」有關,「SizeWithFont」方法不能正確計算它。最大的問題是clipsToBounds確實可以解決這個問題。 – smcdrc

+0

我的意思是暫時性的,看它在IB中是否與在測試程序創建的視圖時一樣。 – darvids0n

回答

1

我想我找到了解決方案。客戶在Word Doc中給了我上面的文本,然後我複製並粘貼到文件中。點和文本之間的空間似乎是一個空間,但是是其他特殊字符。所以複製/粘貼它的醜陋的頭。

+0

對於任何人來到這裏(像我一樣),解決一個特殊字符的情況下(導致我一個編譯失敗的問題)可以使用編輯器>顯示不可見(當在Xcode中編輯.m或.h文件時)。 –

1

對於任何人在這個問題上磕磕絆絆,我有同樣的問題,在我的情況下,在UILabel中,有一些製表符,導致相同的效果。