私は SO で ~10 の質問を見てきましたが、まだ不足しています。
通常、次のようにレンダリングされる複数行の UILabel (Interface Builder で作成され、numberOfLines が 0 に設定) があります。
「利用規約」と「プライバシー ポリシー」に下線を引きたいので、次のコードを追加しました。
NSString *text = self.agreement.text;
NSMutableAttributedString *aString = [[NSMutableAttributedString alloc] initWithString:text];
NSRange privacyRange = [text rangeOfString:@"privacy policy" options:NSCaseInsensitiveSearch];
[aString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:privacyRange];
NSRange tosRange = [text rangeOfString:@"terms of service" options:NSCaseInsensitiveSearch];
[aString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:tosRange];
self.agreement.attributedText = aString;
しかし、結果は次のようになります。
適切な範囲に下線が引かれ、両方の行が表示されるようにするにはどうすればよいですか?
また、OHAttributedLabel や TTTAttributedLabel などのサード パーティ ライブラリを使用したくないのは、アプリ内でテキストに下線を引く必要がある唯一の場所だからです。
私が試したこと
sizeToFit
属性付きテキストを設定した後の呼び出し- 代わりに UITextView を使用します。両方の線が正しくレンダリングされましたが、中央揃えが失われました。
- リセット
numberOfLines
とlineBreakMode
コード内
Sascha から、背景色をクリア以外に設定した 2 つのスクリーンショットをアップロードするように依頼されました。奇妙なことに、すべてが期待どおりに表示されます。これをどう解釈すべきか、あるいはこれが何を伝えているのかわからない。