28

で下線付きのテキストを作成するにはどうすればよいUILabelですか?

UILabel高さ0.5fの を作成して、テキストの下に配置してみました。この行ラベルは、iPhone 4.3およびiPhone 4.3 シミュレーターでアプリを実行しているときは表示されませんが、 iPhone 5.0 シミュレーター以降では表示されます。なんで?

これどうやってするの?

4

7 に答える 7

82

Objective-C

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];

iOS 5.1.1 < バージョン

3 party attributed Label表示する必要がありますattributed text:

1) TTTAttributedLabelリンクを参照してください。attributed Labeldisplay起因するその最高のサードパーティtext

2)第三者のOHAttributedLabelを参照するattributed Label

于 2012-10-29T13:22:31.743 に答える
5

The Designer Way - 高度にカスタマイズ可能なバージョン

個人的には、自分のデザインを可能な限りカスタマイズすることを好みます。組み込みの下線ツールを使用すると、簡単にカスタマイズできない場合があります。

これが私がそれを行う方法です:

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:

ここに画像の説明を入力

于 2016-12-04T03:19:59.177 に答える
3

TTTAttributedLabelを見てください。3d パーティ コンポーネントの使用が許可されている場合は、必要な場所で UILabels を TTTAttributedLabel に置き換えるだけです (ドロップイン置換)。iOS < 6.0 で動作します!

于 2012-10-29T13:23:00.977 に答える
2

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 つは、テキストが変更されるたびに呼び出す必要があり、それをオフにする実際の方法がないことです...

于 2016-04-08T18:46:42.073 に答える