标签上带有点的字符串

Posted

技术标签:

【中文标题】标签上带有点的字符串【英文标题】:String apear with dots on the label 【发布时间】:2013-01-09 11:21:19 【问题描述】:

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

服务:

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

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

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

myData.prop1 我的数据.prop2

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

@property (weak, nonatomic) IBOutlet UILabel detailLabel;

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

self.detailLabel.text = myData.prop1;

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

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

有什么建议吗?

【问题讨论】:

在运行时检查标签的实际大小。我想 UILable 有点太短了。 它不依赖于标签,如果我采用另一个属性(带有更长的字符串),那么它可以工作 该属性的字符串中是否有任何尾随空格? 【参考方案1】:

编辑:

那是省略号

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

Hi AnoopVa... 代替 Hi AnoopVaidya

上一个答案:

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

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

【讨论】:

你不明白,它们不是字符串的一部分。(根据调试器) 不,它们就像“标签太短”的点,但标签足够长【参考方案2】:

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

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

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

对于 ios5 及更早版本,请查看 UILineBreakMode documentation,对于 iOS6 及更高版本,请查看 NSLineBreakMode documentation。

【讨论】:

以上是关于标签上带有点的字符串的主要内容,如果未能解决你的问题,请参考以下文章

检测丢失的字符字形,以及 Firefox 的带有十六进制代码点的小盒子

无法存储带有问题的标签:给定字符串

如何在 Django 模板中的“带有模板标签”中设置 Django 渲染块值?

带有字符串标签的 Spark ALS - 转换回字符串

带有图像标签的 Binging 字符串 - Windows Phone 8.1 UWP

在属性 href 中查找所有带有特定字符串的“A”标签?