Aar*_*ron 4 iphone views objective-c uikit ios
说我有The Dark Knight Rises at 7:45pm,我需要将其放入固定宽度的UILabel(适用于iPhone).我怎么能把那个截形变成"黑暗骑士Ris ......在晚上7:45",而不是"黑暗骑士在7:4升起......"?
Ram*_*uri 11
UILabel有这个属性:
@property(nonatomic) NSLineBreakMode lineBreakMode;
Run Code Online (Sandbox Code Playgroud)
您可以通过将其设置为NSLineBreakByTruncatingMiddle来启用该行为.
编辑
我不明白你想要截断字符串的一部分.然后读这个:
如果要将换行模式仅应用于文本的一部分,请使用所需的样式信息创建新的属性字符串,并将其与标签相关联.如果未使用样式化文本,则此属性将应用于text属性中的整个文本字符串.
例
所以甚至还有一个用于设置段落样式的类:NSParagraphStyle,它也有可变版本.
因此,假设您有一个要应用该属性的范围:
NSRange range=NSMakeRange(i,j);
Run Code Online (Sandbox Code Playgroud)
你必须创建一个NSMutableParagraphStyle对象,并将它的lineBreakMode设置为NSLineBreakByTruncatingMiddle.Notice,你也可以设置很多其他参数.所以我们这样做:
NSMutableParagraphStyle* style= [NSMutableParagraphStyle new];
style.lineBreakMode= NSLineBreakByTruncatingMiddle;
Run Code Online (Sandbox Code Playgroud)
然后为该范围内标签的attributedText添加该属性.intributeText属性是NSAttributedString,而不是NSMutableAttributedString,因此您必须创建NSMutableAttributedString并将其分配给该属性:
NSMutableAttributedString* str=[[NSMutableAttributedString alloc]initWithString: self.label.text];
[str addAttribute: NSParagraphStyleAttributeName value: style range: range];
self.label.attributedText= str;
Run Code Online (Sandbox Code Playgroud)
请注意,NSAttributedString还有很多其他属性,请在此处查看.
| 归档时间: |
|
| 查看次数: |
5743 次 |
| 最近记录: |