gpt4 book ai didi

iphone - 如何截断 UILabel 中字符串中的字符串?

转载 作者:可可西里 更新时间:2023-11-01 05:01:44 28 4
gpt4 key购买 nike

假设我有晚上 7:45 的黑暗骑士崛起,我需要将其放入固定宽度的 UILabel(适用于 iPhone)。我如何将其截断为“The Dark Knight Ris... at 7:45pm”而不是“The Dark Knight Rises at 7:4...”?

最佳答案

UILabel 有这个属性:

@property(nonatomic) NSLineBreakMode lineBreakMode;

您可以通过将其设置为 NSLineBreakByTruncatingMiddle 来启用该行为。

编辑

我不明白你只想截断字符串的一部分。然后阅读:

If you want to apply the line break mode to only a portion of the text, create a new attributed string with the desired style information and associate it with the label. If you are not using styled text, this property applies to the entire text string in the text property.

示例

所以甚至还有一个用于设置段落样式的类:NSParagraphStyle,它也有可变版本。
因此,假设您有一个要应用该属性的范围:

NSRange range=NSMakeRange(i,j);

你必须创建一个 NSMutableParagraphStyle 对象并将它的 lineBreakMode 设置为 NSLineBreakByTruncatingMiddle。注意你还可以设置很多其他参数。所以让我们这样做:

NSMutableParagraphStyle* style= [NSMutableParagraphStyle new];
style.lineBreakMode= NSLineBreakByTruncatingMiddle;

然后为该范围内的标签的 attributedText 添加该属性。attributedText 属性是 NSAttributedString,而不是 NSMutableAttributedString,因此您必须创建一个 NSMutableAttributedString 并将其分配给该属性:

NSMutableAttributedString* str=[[NSMutableAttributedString alloc]initWithString: self.label.text];
[str addAttribute: NSParagraphStyleAttributeName value: style range: range];
self.label.attributedText= str;

注意 NSAttributedString 还有很多其他属性,检查 here .

关于iphone - 如何截断 UILabel 中字符串中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13906431/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com