字符串在标签上显示为带点

时间:2013-01-09 11:21:20

标签: objective-c ios6 odata

我从带有生成代理的odata频道中捕获一些数据 (生成器来自http://www.odata.org/

服务:

...
           <d:prop1>test1</d:prop1>
           <d:prop2>test2</d:prop2>
       </m:properties>
   </content>
     

  EDM.string和nullable

的所有属性

生成的对象就像那样(所有NSString):

  

myData.prop1    myData.prop2



我有一个带有静态单元格的表格视图,“左侧细节”样式和一个用于细节标签的IBoutlet。

  

@property(弱,非原子)IBOutlet UILabel detailLabel;

NSLog打印所有属性值都正确。但是如果我想将它们添加到detailLabel中,则一些值始终显示为第一个字符和三个点(v ...)。该行为取决于属性,而不取决于字符串长度或detailLabel。

  

self.detailLabel.text = myData.prop1;

如果我将一个字符串附加到属性字符串中,其中包含3个字符的ist锁定,例如vvvv ...,但这些点永远不会消失。

String formater和[self.detailLabel setNeedsLayout]不解决这个问题。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

编辑:

省略号

每当你的文字比UITextFiled更精细时,它就会显示出来。喜欢:

Hi AnoopVa...代替Hi AnoopVaidya

上一个回答:

您必须附加包含...

的字符串

或者你可以截断字符串中的最后三个字符,如果它真的不需要并且让你讨厌。

答案 1 :(得分:0)

你看到的是自动字符串截断,你的文本字符串中实际上没有3个点。该字符串比标签在可用空间上的长度要长。

如果您不想查看/显示它们,请调整UILabel宽度,字体大小和lineBreakModel。选择是:

enum {
NSLineBreakByWordWrapping = 0,
NSLineBreakByCharWrapping,
NSLineBreakByClipping,
NSLineBreakByTruncatingHead,
NSLineBreakByTruncatingTail,
NSLineBreakByTruncatingMiddle
};
typedef NSUInteger NSLineBreakMode

对于iOS5及更早版本,请检查UILineBreakMode documentation,对于iOS6及更高版本,请检查NSLineBreakMode documentation