Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSLineBreakByTruncingTail在截断线结束时不显示三个点\n_Ios_Uilabel - Fatal编程技术网

Ios NSLineBreakByTruncingTail在截断线结束时不显示三个点\n

Ios NSLineBreakByTruncingTail在截断线结束时不显示三个点\n,ios,uilabel,Ios,Uilabel,显示为:abc 预期:abc。。。 我试图设置属性文本,并在段落属性中设置换行模式,但也不起作用-_-// 加: 如果在一行上用文本替换“\n”字符,则它也会显示。例如:设置标签宽度100pt,将文本“abcabacb”和blabla设置为多行,显示为“abcabca…” 因此,如果能够被截断的文本与键char“\n”相关 UILabel *label label.numberOfLines = 1; label.text = @"abc\nabc"; label.lineBreakMode =

显示为:abc 预期:abc。。。 我试图设置属性文本,并在段落属性中设置换行模式,但也不起作用-_-//

加: 如果在一行上用文本替换“\n”字符,则它也会显示。例如:设置标签宽度100pt,将文本“abcabacb”和blabla设置为多行,显示为“abcabca…”

因此,如果能够被截断的文本与键char“\n”相关

UILabel *label
label.numberOfLines = 1;
label.text = @"abc\nabc";
label.lineBreakMode = NSLineBreakByTruncatingTail;
将行数设为0,高度设为1行(比如21),然后您将得到预期的答案。
如果您指定的行数为1,则第一行中没有可截断的内容。只需忽略第二行文本。

创建高度为21的标签(或根据您的意愿)。并设置前导、尾随、顶部和高度约束。使高度约束>=为高度。将高度约束连接到类

    let label = UILabel()
    label.frame = CGRect(x: 100, y: 200, width: 50, height: 25)
    label.backgroundColor = UIColor.red
    label.numberOfLines = 0;
    label.lineBreakMode = NSLineBreakMode.byTruncatingTail
    label.text = "abc\nabc"
试试这个

 label.numberOfLines = 5;    //set number of lines as you need.
 label.lineBreakMode = NSLineBreakMode.byTruncatingTail  // set as truncate tail to get …
 let strings = "iOS is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that presently powers many of the company's mobile devices, including the iPhone, iPad, and iPod Touch"
 label.text = strings
 let size: CGSize = label.text!.size(withAttributes [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 14.0)])
 labelHeightConstraint.constant = size.height
也请检查讨论。

行动!我发现如果我删除“\n”并附加两行字,那么它将被“…”截断。所以它与“\n”字符有关。现在未解决--//。因为我们将高度设置为25。和宽度为50,并且不根据文本大小调整标签框架的大小。它会截断尾巴。您的实际要求是什么?要求通过设置numberOfLines而不是可见文本高度来截断文本。如果在最后一行中没有以“\n”结尾,则效果良好。请检查更新后的答案。希望它能帮助您理解您的答案,但我无法使用AutoLayout、在应用程序中使用另一个布局引擎并使用JavaScript编码。现在我把这个问题看作是iOS中的一个bug,有没有办法克服它?
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 50, 200, 25)];
label.lineBreakMode = NSLineBreakByWordWrapping;
label.numberOfLines = 0; //  use 0 for unlimited.
label.preferredMaxLayoutWidth = self.view.frame.size.width;
label.text = @" abc \n abc \n abc \n abc \n abc \n abc \n abc \n abc \n abc \n";
[label sizeToFit];
[label setNeedsDisplay];
[self.view addSubview:label];