2017-04-26 23 views
0

有什么办法可以得到UILabelNSParagraphStyle而不是创建一个新的实例并设置每个属性?获取NSParagraphStyle的UILabel

+0

如果它具有“属性文字”,则可枚举并检索找到的第一个。 – Larme

+0

枚举什么? –

+1

枚举属性文本的'NSParagraphAttributeName'。 – Larme

回答

1

您可以使用enumerateAttribute:inRange:options:usingBlock:在您UILabel对象的attributedText属性检索NSParagraphStyle

NSAttributedString *attributedString = myLabel.attributedText; 

[attributedString enumerateAttribute:NSParagraphStyleAttributeName 
          inRange:NSMakeRange(0, attributedString.length) 
          options:0 
          usingBlock:^(id value, NSRange range, BOOL *stop) { 

         NSParagraphStyle *paragraphStyle = value; // Do what you want with paragraph 
}]; 

的代码没有进行测试(可能无法编译由于一些小错误),但它应该给你它背后的想法。

+0

由于某些原因,'value'总是'nil'。另外,我最初想从一个没有“属性文字”的UILabel中检索它。 –

+0

你为什么没有理由编辑我的代码?特别是对于不会导致问题的修改(点语法vs“方括号一”),并且不能将'NSParagraphStyle'作为方法的参数,它是一个NSString,它需要存在'NSParagraphStyleAttributeName',而不是类名称。 – Larme

+0

因为'length'是一个属性,而不是一个方法,并且这种方式更具可读性。其他编辑是因为代码没有编译,而'NSParagraphStyle'是一个错误。 –