で下線付きのテキストを作成するにはどうすればよいUILabel
ですか?
UILabel
高さ0.5fの を作成して、テキストの下に配置してみました。この行ラベルは、iPhone 4.3およびiPhone 4.3 シミュレーターでアプリを実行しているときは表示されませんが、 iPhone 5.0 シミュレーター以降では表示されます。なんで?
これどうやってするの?
で下線付きのテキストを作成するにはどうすればよいUILabel
ですか?
UILabel
高さ0.5fの を作成して、テキストの下に配置してみました。この行ラベルは、iPhone 4.3およびiPhone 4.3 シミュレーターでアプリを実行しているときは表示されませんが、 iPhone 5.0 シミュレーター以降では表示されます。なんで?
これどうやってするの?
iOS 6.0 > バージョン
UILabel
サポートNSAttributedString
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Hello Good Morning"];
[attributeString addAttribute:NSUnderlineStyleAttributeName
value:[NSNumber numberWithInt:1]
range:(NSRange){0,[attributeString length]}];
let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Hello Good Morning")
attributeString.addAttribute(NSUnderlineStyleAttributeName, value: 1, range: NSMakeRange(0, attributeString.length))
定義:
- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)aRange
Parameters List:
name : 属性名を指定する文字列。属性キーは、別のフレームワークから提供することも、独自に定義したものにすることもできます。システム提供の属性キーの場所については、NSAttributedString クラス リファレンスの概要セクションを参照してください。
value : name に関連付けられた属性値。
aRange : 指定された属性/値のペアが適用される文字の範囲。
次のように使用します。
yourLabel.attributedText = [attributeString copy];
3 party attributed Label
表示する必要がありますattributed text
:
1) TTTAttributedLabelリンクを参照してください。attributed
Label
にdisplay
起因するその最高のサードパーティtext
。
2)第三者のOHAttributedLabelを参照するattributed
Label
個人的には、自分のデザインを可能な限りカスタマイズすることを好みます。組み込みの下線ツールを使用すると、簡単にカスタマイズできない場合があります。
これが私がそれを行う方法です:
1まず、下線用の UIView を作成します。次に、IB またはプログラムで背景色を選択できます。ここでは制約が重要です。
2次に、下線を好きなだけカスタマイズできます。たとえば、視覚効果を高めるために下線の幅を調整するには、Interface Builder で制約へのアウトレット接続を作成します。
3その後、下線ビューをプログラムで簡単にカスタマイズできます。たとえば、下線をタイトル「Breads」より 20 px 広くします。
var originalString: String = "Breads"
let myString: NSString = originalString as NSString
let size: CGSize = myString.size(attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 14.0)])
self.widthUnderlineTitle.constant = size.width + 20
Results:
TTTAttributedLabelを見てください。3d パーティ コンポーネントの使用が許可されている場合は、必要な場所で UILabels を TTTAttributedLabel に置き換えるだけです (ドロップイン置換)。iOS < 6.0 で動作します!
UILabel の Swift 拡張機能:
まだ改善が必要です。ご意見は大歓迎です。
extension UILabel{
func underLine(){
if let textUnwrapped = self.text{
let underlineAttribute = [NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue]
let underlineAttributedString = NSAttributedString(string: textUnwrapped, attributes: underlineAttribute)
self.attributedText = underlineAttributedString
}
}
}
私が今考えることができる短所の 1 つは、テキストが変更されるたびに呼び出す必要があり、それをオフにする実際の方法がないことです...