2011-08-19 75 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中,有一些制表符,导致相同的效果。