1

我使用生成的代理从 odata 通道捕获一些数据
(生成器来自http://www.odata.org/

服务:

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

所有带有 EDM.string 且可为空的属性

生成的对象是这样的(所有 NSString):

我的数据.prop1 我的数据.prop2



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

@property (weak, nonatomic) IBOutlet UILabel detailLabel;

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

self.detailLabel.text = myData.prop1;

如果我将一个字符串附加到具有 3 个字符的属性字符串,则它会像 vvvv ... 那样锁定,但点永远不会消失

字符串格式化程序和 [self.detailLabel setNeedsLayout] 不能解决这个问题。

有什么建议么?

4

2 回答 2

0

编辑:

那是省略号

每当您的文本比 UITextFiled 长时,它就会以这种方式显示。像 :

Hi AnoopVa...代替Hi AnoopVaidya.

上一个答案:

您必须附加包含...的字符串

或者,您可以截断字符串中的最后三个字符,如果它真的不想要并且让您烦恼的话。

于 2013-01-09T11:24:34.120 回答
0

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

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

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

For iOS5 and older check UILineBreakMode documentation, for iOS6 and newer check NSLineBreakMode documentation.

于 2013-01-09T11:43:07.693 回答