下のラベル (黄色) を 1 行ではなく、少なくとも 2 行にしたいと考えています。
Use Autolayout
Interface Builderでチェックを外したことを確認しました。を 0 から 2に設定すると、numberOfLines
2 つの単語が重なり合い、黄色の背景が単語にぴったりとはまります。が であっても であっても結果は同じlineBreakMode
です。の結果を使って項ラベルの枠を設定してもしなくても同じですし、使っても使わなくても同じです。また、ラベルを のサブクラスではなくにしようとしましたが、結果は同じです。NSLineBreakByWordWrapping
NSLineBreakByTruncatingTail
sizeWithAttributes
sizeToFit
UILabel
UILabel
TTTAttributedLabel
_termsLabel.font = [UIFont systemFontOfSize:12];
_termsLabel.textColor = [UIColor grayColor];
_termsLabel.textAlignment = NSTextAlignmentCenter;
_termsLabel.lineBreakMode = NSLineBreakByWordWrapping;
_termsLabel.numberOfLines = 0;
_termsLabel.delegate = self;
_termsLabel.backgroundColor = [UIColor yellowColor];
// Terms label
NSString *termsText = [NSString stringWithFormat:@"%@ %@ %@ %@", NSLocalizedString(@"TermsIAgree", nil),
NSLocalizedString(@"SettingsTOS", nil),
NSLocalizedString(@"LocalizedAnd", nil),
NSLocalizedString(@"SettingsPrivacyPolicy", nil)];
_termsLabel.text = termsText;
_termsLabel.linkAttributes = @{ (__bridge NSString *)kCTUnderlineStyleAttributeName : [NSNumber numberWithBool:YES]};
CGSize termsSize = [_termsLabel.text sizeWithAttributes: @{ NSFontAttributeName : _termsLabel.font}];
_termsLabel.frame = CGRectMake(65,
395,
termsSize.width, termsSize.height);
[_termsLabel addLinkToURL:[NSURL URLWithString:TOS_URL] withRange:[termsText rangeOfString:NSLocalizedString(@"SettingsTOS", nil)]];
[_termsLabel addLinkToURL:[NSURL URLWithString:PRIVACY_POLICY_URL] withRange:[termsText rangeOfString:NSLocalizedString(@"SettingsPrivacyPolicy", nil)]];
EDIT : を使用して用語テキストサイズを見つけることにより、is then CGSize termsSize = [_termsLabel.text sizeWithFont:_termsLabel.font forWidth:200 lineBreakMode:NSLineBreakByWordWrapping];
、結果は1行だけになります:height
termsSize
14
どうすれば2行目を取得できますか? 解決策この時点で、追加するだけ[_termsLabel sizeToFit]
です。