のテキストに下線を付けるにはどうすればよいですかUITextView
。のサブクラスを作成する必要があることは理解していますUITextView
が、何が発生しdrawRect:
ますか?
ありがとう。
のテキストに下線を付けるにはどうすればよいですかUITextView
。のサブクラスを作成する必要があることは理解していますUITextView
が、何が発生しdrawRect:
ますか?
ありがとう。
次のように使用NSAttributedString
して、に設定してみてくださいUITextView
。これはiOS6で機能します。
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:@"Some String"];
[attString addAttribute:(NSString*)kCTUnderlineStyleAttributeName
value:[NSNumber numberWithInt:kCTUnderlineStyleSingle]
range:(NSRange){0,[attString length]}];
NSAttributedString
これを確認するための詳細については、NSAttributedStringをどのように使用しますか?
例:-
textView.attributedText = attString;
iOS 6以降では、このクラスはattributedTextプロパティを使用して複数のテキストスタイルをサポートします。(スタイル付きテキストは、以前のバージョンのiOSではサポートされていません。)このプロパティに値を設定すると、テキストビューは属性付き文字列で提供されるスタイル情報を使用します。font、textColor、およびtextAlignmentプロパティを使用してスタイル属性を設定することはできますが、これらのプロパティはテキストビューのすべてのテキストに適用されます。
テキストビューによって表示されるスタイル付きテキスト。
@property(nonatomic,copy) NSAttributedString *attributedText
説明:このプロパティはデフォルトではnilです。このプロパティに新しい値を割り当てると、フォーマット情報がなくても、textプロパティの値が同じ文字列データに置き換えられます。さらに、新しい値を割り当てると、font、textColor、およびtextAlignmentプロパティの値が更新され、属性付き文字列の位置0から始まるスタイル情報が反映されます。
CoreTextを含める必要がない場合は、次の属性を持つ属性付き文字列を利用できます。
@{NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)}
これが静的テキストの場合は、InterfaceBuilderで下線を引くことができます。ドロップダウンメニューで[属性付き]を選択して、最初に[属性付き]というテキストを作成してください。
textViewMessage.linkTextAttributes = @{NSForegroundColorAttributeName: [UIColor blueColor], NSUnderlineStyleAttributeName: [NSNumber numberWithInt:NSUnderlineStyleSingle]};
テキストをフォーマットしたい場合(下線付きの単語、リンク、色付きの単語など)、FTCoreTextを使用することをお勧めします
-(IBAction)underline:(id)sender
{
NSDictionary *underlineAttribute = @{NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)};
texts.attributedText = [[NSAttributedString alloc] initWithString:texts.text
attributes:underlineAttribute];
}
「kCTUnderlineStyleAttributeName」または「kCTUnderlineStyleSingle」は使用できません。次のようにする必要があります。
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:@"Text"];
[attString addAttribute:NSUnderlineStyleAttributeName
value:@(NSUnderlineStyleSingle)
range:(NSRange){0,[attString length]}];
MFUnderlinedTextViewを使用することをお勧めします。これは役に立ちます。
iOS 6を使用している場合は、 UITextViewattributedText
の属性を使用できます。テキストにアンダースコアの書式を適用します。必要に応じて、ユーザーが入力するテキストに特定の書式設定が含まれるようにプロパティを設定することもできます。typingAttributes
CoreTextを使用することをお勧めします。基本的なチュートリアルは、raywenderlichにあります。
これは私がSwift5を使用してそれを行った方法です:
let attributedString = NSMutableAttributedString(string: myTextView.text ?? "")
myTextView.linkTextAttributes = [NSAttributedString.Key(rawValue: NSAttributedString.Key.underlineStyle.rawValue): NSUnderlineStyle.single.rawValue] as [NSAttributedString.Key: Any]?
myTextView.attributedText = attributedString
Swift 5. UITextViewとして、テキストを挿入する場合は、次のように拡張関数を作成しました。
extension UITextView {
func underlined() {
let border = CALayer()
let width = CGFloat(1.0)
border.borderColor = UIColor.lightGray.cgColor
border.frame = CGRect(x: 0, y: self.frame.size.height - 5, width: self.frame.size.width, height: 1)
border.borderWidth = width
self.layer.addSublayer(border)
self.layer.masksToBounds = true
let style = NSMutableParagraphStyle()
style.lineSpacing = 15
let attributes = [NSAttributedString.Key.paragraphStyle : style, NSAttributedString.Key.foregroundColor : UIColor.darkGray, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 13)]
self.attributedText = NSAttributedString(string: self.text, attributes: attributes)
}
}
境界線は線を引き、スタイルは線の間に間隔を追加しています。UIViewカスタムレイアウトでの使用法:
override func layoutSubviews() {
super.layoutSubviews()
self.dateAndTimeInput.underlined()
}
let someString = NSMutableAttributedString(string: "Your String", attributes: [NSAttributedString.Key.font : UIFont.boldSystemFont(ofSize: 20), NSAttributedString.Key.underlineStyle : NSUnderlineStyle.single.rawValue])
someStringTextView.attributedText = titleAT
Uは、文字列に太字、下線などの一連の属性を与えることができます。
テキストに下線を引くには、コピー、切り取り、削除のオプションを選択できる場所に移動する必要があります。B/ I / U(太字、斜体、下線)などのオプションが追加されました。このオプションを選択すると、これで終わりです。それができない場合は、下線オプションをもう一度選択してください。