NSLineBreakByTruncatingTail 在截断的行以 结尾时不显示三个点


UILabel *label
label.numberOfLines = 1;
label.text = @"abcnabc";
label.lineBreakMode = NSLineBreakByTruncatingTail;

显示为:ABC预期: ABC...我尝试在段落属性中设置属性文本和设置换行模式,但也没有工作 -_-//

加:如果将""字符替换为一行上的文本,则也会显示。如:设置标签宽度100pt,设置文本"abcabcabcbacb"和blabla多行,显示为"abcabcabcabca..."。

因此,如果能够截断的文本与键字符 '' 相关。

    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 = "abcnabc"

将行数设置为 0,高度在 1 行范围内(例如 21),那么您将得到预期的答案。如果给出的行数是1,则第一行没有什么可截断的 line.it 只需忽略第二行文本即可。

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

 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

试试这个。

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];

也请检查讨论。 根据文本调整 UILabel 高度

最新更新