作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
所以在我的代码中,我正在检查我的字符是否适合我的标签,并且有以下行:
return self.adjustsLetterSpacingToFitWidth;
这被放置在 UILabel
的实现中。有人能告诉我这个的确切替代方案是什么吗?文档说 - 使用 NSKernAttributeName
,但我不太明白。有人可以帮我解决这个问题吗?
在更大的意义上 - 该方法被称为:
xLab.adjustLetterSpacingToFitWidth = YES;
在我的代码中,我有:
@implementation UILabel ()
- (BOOL) getter {
return self.adjustsLetterSpacingToFitWidth;
}
- (void) setter:(BOOL) setVal {
self.adjustsLetterSpacingToFitWidth = setVal;
}
@end
最佳答案
首先,如图所示,您的 getter
和 setter
完全多余;无论您在哪里调用 getter
和/或 setter
,您都可以直接获取/设置 adjustsLetterSpacingToFitWidth
。
关于如何使用 NSKernAttributeName
进行自动字距调整的问题,Apple 的文档说:“要在标签中打开自动字距调整,请设置 NSKernAttributeName
字符串到 [NSNull null]
”,也就是说,你会做类似的事情:
NSMutableAttributedString *s;
s = [[NSMutableAttributedString alloc] initWithString:my_uilabel.text];
[s addAttribute:NSKernAttributeName
value:[NSNull null]
range:NSMakeRange(0, s.length)];
my_uilabel.attributedText = s;
但如果您不想自动调整字母间距,而是想了解文本是否适合标签,您可能需要查看 NSString
UIKit additions 中的各种方法。 . (这个意图的猜测是基于原问题中的措辞。)
关于ios - UILabel - 已弃用方法的替代方法 "adjustsLetterSpacingToFitWidth",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21923763/
我是一名优秀的程序员,十分优秀!