簡體   English   中英

UILabel - 不推薦使用方法的替代方法“adjustsLetterSpacingToFitWidth”

[英]UILabel - Alternative for Deprecated Method “adjustsLetterSpacingToFitWidth”

所以在我的代碼中,我正在檢查我的字符是否適合我的標簽,並且具有以下行:

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 ,蘋果的文件說:“要在標簽中打開自動字距,設置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添加中的各種方法。 (這種意圖的猜測是基於原始問題中的措辭。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM