派生元: UIView
定義: IGLabel.h

概要

IGLabel は、UILabel と同様に動作し、機能豊かな text ラベルで、属性文字列を使用して text に同じような方法でスタイルを適用します。コア Text に基づき、ジェネリック UILabel でパフォーマンスと機能を向上させます。

属性は、NSRange または次のメソッドを介して正規表現検索文字列を使用して表示 text の装飾に使用されます: addAttributes:range: および addAttributes:forRegEx:error:。属性でこれらの text の次の特性を調整できます。太字表示、fonttext 前景色、イタリック表示、カーニング スペース、text ストローク カラーと幅、タップによる text の繰り返し、下線表示、および色。

Text 変数は addTextVariable:value: メソッドを使用して追加され、動的な text 値の使用を許可するために使用されます。text プロパティが変更され、text 変数が定義されると、設定した値で自動的に更新されます。

タスク

初期化と構成

  •   delegate

    ラベルのデリゲートとして動作するオブジェクト。

    プロパティ
  •   font

    text のフォント。

    プロパティ
  •   text

    ラベルに表示されるテキストを設定します。

    プロパティ

オーバーフロー インジケーター

  •   overflowIndicatorAlignment

    表示するオーバーフロー インジケーターの端の配置。タイプ: IGTextOverflowAlignmentデフォルト: IGTextOverflowAlignmentRightCenter

    プロパティ
  •   overflowIndicatorView

    オーバーフロー インジケーターとして表示するためのビュー。タイプ: UIViewデフォルト: nil

    プロパティ
  •   overflowIndicatorVisible

    text が使用可能なスペースを超えた時にインジケーターを表示するかどうかを設定します。タイプ: BOOL.デフォルト: NO.

    プロパティ

段落およびテキスト スタイル

  •   firstLineHeadIndent

    ラベルの行間 marginAll から段落の最初の行の初めまでの距離 (pt)。この値は常に非負です。タイプ: CGFloatデフォルト: 0.0

    プロパティ
  •   headIndent

    ラベルの行間 marginAll から最初以外の行の初めまでの距離 (pt)。この値は常に非負です。タイプ: CGFloat Default: 0.0.

    プロパティ
  •   horizontalTextAlignment

    text 配置。タイプ: IGTextAlignmentデフォルト: IGTextAlignmentLeft

    プロパティ
  •   lineBreakMode

    text の行がラベルの幅に対して長すぎる場合の動作を指定します。タイプ: IGLineBreakModeデフォルト: IGBreakByWordWrapping

    プロパティ
  •   lineSpacing

    段落内で行の間に追加されるスペース (pt) (一般的に行間と呼ばれます)。この値は常に非負です。タイプ: CGFloatデフォルト: 0.0

    プロパティ
  •   marginAll

    text とラベルの端を区切るスペース。この値は常に非負です。このプロパティを設定すると、marginBottommarginLeftmarginRight、および marginTop プロパティは無効になり、0.0 に設定されます。タイプ: CGFloatデフォルト: 8.0

    プロパティ
  •   marginBottom

    text とラベルの下端を区切るスペース。この値は常に非負です。プロパティが設定されると、marginAll プロパティは無効になり、 -1.0 に設定されます。タイプ: CGFloatデフォルト: 0.0

    プロパティ
  •   marginLeft

    text とラベルの左端を区切るスペース。この値は常に非負です。プロパティが設定されると、marginAll プロパティは無効になり、 -1.0 に設定されます。タイプ: CGFloatデフォルト: 0.0

    プロパティ
  •   marginRight

    text とラベルの右端を区切るスペース。この値は常に非負です。プロパティが設定されると、marginAll プロパティは無効になり、 -1.0 に設定されます。タイプ: CGFloatデフォルト: 0.0

    プロパティ
  •   marginTop

    text とラベルの上端を区切るスペース。この値は常に非負です。プロパティが設定されると、marginAll プロパティは無効になり、 -1.0 に設定されます。タイプ: CGFloatデフォルト: 0.0

    プロパティ
  •   paragraphSpacingBefore

    段落の上とその text コンテンツの初めのとの間の距離。タイプ: CGFloatデフォルト: 0.0

    プロパティ
  •   paragraphSpacingAfter

    後に続く段落と分けるために段落の最後に追加されるスペース。この値は常に非負です。タイプ: CGFloatデフォルト: 0.0

    プロパティ
  •   tailIndent

    ラベルの marginAll から行の最後までの距離 (pt)。正の場合、この値は行間 marginAll からの距離になります。0 または負の場合は、行間 marginAll からの距離です。タイプ: CGFloatデフォルト: 0.0

    プロパティ
  •   textColor

    text の色。

    プロパティ

テキスト スタイル属性

テキスト変数

プロパティ

delegate

ラベルのデリゲートとして動作するオブジェクト。

@property (nonatomic, assign) id<> delegate

注記

クラスは IGLabelDelegate プロトコルに適用する必要があります。

定義:

IGLabel.h

firstLineHeadIndent

ラベルの行間 marginAll から段落の最初の行の初めまでの距離 (pt)。この値は常に非負です。タイプ: CGFloatデフォルト: 0.0

@property (nonatomic, assign) CGFloat firstLineHeadIndent

定義:

IGLabel.h

font

text のフォント。

@property (nonatomic, retain) UIFont *font

注記

このプロパティのデフォルト値は、12 pt の Helvetica フォントです。プロパティの値は nil 以外の値にのみ設定できます。このプロパティを nil に設定すると例外が発生します。

定義:

IGLabel.h

headIndent

ラベルの行間 marginAll から最初以外の行の初めまでの距離 (pt)。この値は常に非負です。タイプ: CGFloat Default: 0.0.

@property (nonatomic, assign) CGFloat headIndent

定義:

IGLabel.h

horizontalTextAlignment

text 配置。タイプ: IGTextAlignmentデフォルト: IGTextAlignmentLeft

@property (nonatomic, assign) IGTextAlignment horizontalTextAlignment

注記

サポートされる列挙値:

  • IGTextAlignmentLeft – テキストが左揃えになります。
  • IGTextAlignmentRight – テキストが右揃えになります。
  • IGTextAlignmentCenter – テキストが中央揃えになります。
  • IGTextAlignmentJustified – テキストが両端揃えになります。段落の最後の行がに自然に配置されます。

定義:

IGLabel.h

lineBreakMode

text の行がラベルの幅に対して長すぎる場合の動作を指定します。タイプ: IGLineBreakModeデフォルト: IGBreakByWordWrapping

@property (nonatomic, assign) IGLineBreakMode lineBreakMode

注記

サポートされる列挙値:

  • IGBreakByWordWrapping – 1 行に 1 単語が収まらない場合、単語の境界線でラップされます。
  • IGBreakByCharWrapping – 最初の文字が収まらない場合、その文字の前でラップされます。
  • IGBreakByClipping – 行はラベルの端を超えて描画されません。
  • IGBreakByTruncatingHead – 各行を表示するため最後までラベルに収まります。また、まだ text があることを省略記号で示します。
  • IGBreakByTruncatingTail – 各行が表示され、最後がラベルに収まり、まだ text があることを省略記号で示します。
  • IGBreakByTruncatingMiddle – 各行が表示され、最初と最後がラベルに収まり、まだ text があることを省略記号で示します。

定義:

IGLabel.h

lineSpacing

段落内で行の間に追加されるスペース (pt) (一般的に行間と呼ばれます)。この値は常に非負です。タイプ: CGFloatデフォルト: 0.0

@property (nonatomic, assign) CGFloat lineSpacing

定義:

IGLabel.h

marginAll

text とラベルの端を区切るスペース。この値は常に非負です。このプロパティを設定すると、marginBottommarginLeftmarginRight、および marginTop プロパティは無効になり、0.0 に設定されます。タイプ: CGFloatデフォルト: 8.0

@property (nonatomic, assign) CGFloat marginAll

定義:

IGLabel.h

marginBottom

text とラベルの下端を区切るスペース。この値は常に非負です。プロパティが設定されると、marginAll プロパティは無効になり、 -1.0 に設定されます。タイプ: CGFloatデフォルト: 0.0

@property (nonatomic, assign) CGFloat marginBottom

定義:

IGLabel.h

marginLeft

text とラベルの左端を区切るスペース。この値は常に非負です。プロパティが設定されると、marginAll プロパティは無効になり、 -1.0 に設定されます。タイプ: CGFloatデフォルト: 0.0

@property (nonatomic, assign) CGFloat marginLeft

定義:

IGLabel.h

marginRight

text とラベルの右端を区切るスペース。この値は常に非負です。プロパティが設定されると、marginAll プロパティは無効になり、 -1.0 に設定されます。タイプ: CGFloatデフォルト: 0.0

@property (nonatomic, assign) CGFloat marginRight

定義:

IGLabel.h

marginTop

text とラベルの上端を区切るスペース。この値は常に非負です。プロパティが設定されると、marginAll プロパティは無効になり、 -1.0 に設定されます。タイプ: CGFloatデフォルト: 0.0

@property (nonatomic, assign) CGFloat marginTop

定義:

IGLabel.h

overflowIndicatorAlignment

表示するオーバーフロー インジケーターの端の配置。タイプ: IGTextOverflowAlignmentデフォルト: IGTextOverflowAlignmentRightCenter

@property (nonatomic, assign) IGTextOverflowAlignment overflowIndicatorAlignment

注記

サポートされる列挙値。

  • IGTextOverflowAlignmentBottomCenter – オーバーフロー インジケーターをラベルの下中央に配置します。
  • IGTextOverflowAlignmentBottomLeft – オーバーフロー インジケーターをラベルの左下に配置します。
  • IGTextOverflowAlignmentBottomLeft – オーバーフロー インジケーターをラベルの右下に配置します。
  • IGTextOverflowAlignmentLeftCenter – オーバーフロー インジケーターをラベルの左中央に配置します。
  • IGTextOverflowAlignmentRightCenter – オーバーフロー インジケーターをラベルの右中央に配置します。
  • IGTextOverflowAlignmentRightCenter – オーバーフロー インジケーターをラベルの上中央に配置します。
  • IGTextOverflowAlignmentTopLeft – オーバーフロー インジケーターをラベルの左上に配置します。
  • IGTextOverflowAlignmentTopRight – オーバーフロー インジケーターをラベルの右上に配置します。

定義:

IGLabel.h

overflowIndicatorView

オーバーフロー インジケーターとして表示するためのビュー。タイプ: UIViewデフォルト: nil

@property (nonatomic, retain) UIView *overflowIndicatorView

定義:

IGLabel.h

overflowIndicatorVisible

text が使用可能なスペースを超えた時にインジケーターを表示するかどうかを設定します。タイプ: BOOL.デフォルト: NO.

@property (nonatomic, assign) BOOL overflowIndicatorVisible

定義:

IGLabel.h

paragraphSpacingAfter

後に続く段落と分けるために段落の最後に追加されるスペース。この値は常に非負です。タイプ: CGFloatデフォルト: 0.0

@property (nonatomic, assign) CGFloat paragraphSpacingAfter

定義:

IGLabel.h

paragraphSpacingBefore

段落の上とその text コンテンツの初めのとの間の距離。タイプ: CGFloatデフォルト: 0.0

@property (nonatomic, assign) CGFloat paragraphSpacingBefore

定義:

IGLabel.h

tailIndent

ラベルの marginAll から行の最後までの距離 (pt)。正の場合、この値は行間 marginAll からの距離になります。0 または負の場合は、行間 marginAll からの距離です。タイプ: CGFloatデフォルト: 0.0

@property (nonatomic, assign) CGFloat tailIndent

定義:

IGLabel.h

text

ラベルに表示されるテキストを設定します。

@property (nonatomic, retain) NSString *text

注記

重要: このプロパティの設定すると前に適用された属性をリセットします。

定義:

IGLabel.h

textColor

text の色。

@property (nonatomic, retain) UIColor *textColor

注記

このプロパティのデフォルト値は黒です (UIColorblackColor クラス メソッド)。プロパティの値は nil 以外の値にのみ設定できます。このプロパティを nil に設定すると例外が発生します。

定義:

IGLabel.h

インスタンス メソッド

addAttributes:forRegEx:error:

正規表現の一致した結果にスタイル設定した属性を追加します。

- (void)addAttributes:(NSDictionary *)attributes forRegEx:(NSString *)expression error:(NSError **)error

パラメーター

attributes

キー/値の属性のスタイルの辞書。

error

エラー出力参照は、エラーを含む正規表現である必要があります。

forRegEx

スタイル属性を一致する式に適用する正規表現。

注記

サポートされるキー列挙値。

  • IGTextStyleBackgroundColorAttributeName – このキーに使用される値は、UIColor です。
  • IGTextStyleBoldAttributeName – このキーで使用される値は UIFont
  • IGTextStyleFontAttributeName – このキーで使用される値は UIFont
  • IGTextStyleForegroundColorAttributeName – このキーで使用される値は UIColor
  • IGTextStyleItalicAttributeName – このキーで使用される値は UIFont
  • IGTextStyleKernAttributeName – このキーで使用される値は float の NSNumber
  • IGTextStyleStrokeColorAttributeName – このキーで使用される値は UIColor
  • IGTextStyleStrokeWidthAttributeName – このキーで使用される値は float の NSNumber
  • IGTextStyleTapAttributeName – このキーで使用される値は UIFont
  • IGTextStyleUnderlineAttributeName – このキーで使用される値は int の NSNumber 。1 の int 値は onで 0 は off です。
  • IGTextStyleUnderlineColorAttributeName – このキーで使用される値は UIColor

以下のコードは、インスタンス ラベルに属性を追加する例です。

label.text = @"The quick brown fox jumped over the lazy dogs.";
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
                [UIFont systemFontOfSize:24], IGTextStyleBoldAttributeName,
                [UIColor darkTextColor], IGTextStyleForegroundColorAttributeName,
                @"The word 'fox' was tapped.", IGTextStyleTapAttributeName, nil];
NSError *error;
[label addAttributes:attributes forRegEx:@"fox" error:&error];

定義:

IGLabel.h

addAttributes:range:

text の特定の範囲にスタイル属性を追加します。

- (void)addAttributes:(NSDictionary *)attributes range:(NSRange)styleRange

パラメーター

attributes

キー/値の属性のスタイルの辞書。

styleRange

スタイル属性が適用される text の範囲。

注記

サポートされるキー列挙値。

  • IGTextStyleBackgroundColorAttributeName – このキーに使用される値は、UIColor です。
  • IGTextStyleBoldAttributeName – このキーで使用される値は UIFont
  • IGTextStyleFontAttributeName – このキーで使用される値は UIFont
  • IGTextStyleForegroundColorAttributeName – このキーで使用される値は UIColor
  • IGTextStyleItalicAttributeName – このキーで使用される値は UIFont
  • IGTextStyleKernAttributeName – このキーで使用される値は float の NSNumber
  • IGTextStyleStrokeColorAttributeName – このキーで使用される値は UIColor
  • IGTextStyleStrokeWidthAttributeName – このキーで使用される値は float の NSNumber
  • IGTextStyleTapAttributeName – このキーで使用される値は UIFont
  • IGTextStyleUnderlineAttributeName – このキーで使用される値は int の NSNumber 。1 の int 値は onで 0 は off です。
  • IGTextStyleUnderlineColorAttributeName – このキーで使用される値は UIColor

以下のコードは、インスタンス ラベルに属性を追加する例です。

label.text = @"The quick brown fox jumped over the lazy dogs.";
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
        [NSNumber numberWithInt:1], IGTextStyleUnderlineAttributeName,
        [UIColor greenColor], IGTextStyleUnderlineColorAttributeName, nil];
[label addAttributes:attributes range:NSMakeRange(16, 3)];

定義:

IGLabel.h

addTextVariable:value:

変数を文字列値で置き換えるラベルに text 変数を追加します。

- (void)addTextVariable:(NSString *)variable value:(NSString *)value

パラメーター

variable

text 変数を検索して置き換えます。

value

文字列値を変数で置き換えます。

注記

text プロパティを変更すると変数を自動的に再適用します。

以下のコードは、インスタンス ラベルに text 変数を追加する例です。

label.text = @"Hello Mr. {LastName}, welcome back to the application.";
[label addTextVariable:@"{LastName}" value:@"Betts"];

定義:

IGLabel.h

removeAttribute:forRegEx:error:

指定した正規表現に一致した結果にスタイル設定した属性を追加します。

- (void)removeAttribute:(NSString *)name forRegEx:(NSString *)expression error:(NSError **)error

パラメーター

name

サポートされるスタイルキー列挙値。

expression

スタイル属性を一致する式に適用する正規表現。

error

エラー出力参照は、エラーを含む正規表現である必要があります。

注記

サポートされるキー列挙値。

  • IGTextStyleBackgroundColorAttributeName
  • IGTextStyleBoldAttributeName
  • IGTextStyleFontAttributeName
  • IGTextStyleForegroundColorAttributeName
  • IGTextStyleItalicAttributeName
  • IGTextStyleKernAttributeName
  • IGTextStyleStrokeColorAttributeName
  • IGTextStyleStrokeWidthAttributeName
  • IGTextStyleTapAttributeName
  • IGTextStyleUnderlineAttributeName
  • IGTextStyleUnderlineColorAttributeName

以下のコードは、インスタンス ラベルから属性を削除する例です。

label.text = @"The quick brown fox jumped over the lazy dogs.";
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
                [UIFont systemFontOfSize:24], IGTextStyleBoldAttributeName,
                [UIColor darkTextColor], IGTextStyleForegroundColorAttributeName,
                @"The word 'fox' was tapped.", IGTextStyleTapAttributeName, nil];
[label addAttributes:attributes range:NSMakeRange(16, 3)];

//適用したスタイル属性を削除します
[label removeAttribute:IGTextBoldAttributeName forRegEx:@"fox" error:nil];

定義:

IGLabel.h

removeAttribute:range:

text の特定の範囲からスタイル属性を削除します。

- (void)removeAttribute:(NSString *)name range:(NSRange)styleRange

パラメーター

name

サポートされるスタイルキー列挙値。

styleRange

スタイル属性が削除される text の範囲。

注記

サポートされるキー列挙値。

  • IGTextStyleBackgroundColorAttributeName
  • IGTextStyleBoldAttributeName
  • IGTextStyleFontAttributeName
  • IGTextStyleForegroundColorAttributeName
  • IGTextStyleItalicAttributeName
  • IGTextStyleKernAttributeName
  • IGTextStyleStrokeColorAttributeName
  • IGTextStyleStrokeWidthAttributeName
  • IGTextStyleTapAttributeName
  • IGTextStyleUnderlineAttributeName
  • IGTextStyleUnderlineColorAttributeName

以下のコードは、インスタンス ラベルからスタイル属性を削除する例です。

label.text = @"The quick brown fox jumped over the lazy dogs.";
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
                [UIFont systemFontOfSize:12], IGTextStyleFontAttributeName,
                [UIFont systemFontOfSize:28], IGTextStyleBoldAttributeName,
                [UIColor redColor], IGTextStyleForegroundColorAttributeName, nil];
[label addAttributes:attributes range:NSMakeRange(0, 3)];

//適用したスタイル属性を削除します
[label removeAttribute:IGTextStyleForegroundColorAttributeName range:NSMakeRange(0, 3)];

定義:

IGLabel.h

removeTextVariable:

text 変数入力を削除します。

- (void)removeTextVariable:(NSString *)variable

パラメーター

variable

自動置換から削除する text 変数。

注記

これは、ラベルから text 変数入力を削除するため、自動置き換えが text に再び設定されることはありません。

定義:

IGLabel.h

resetAttributes

ラベルに追加されているすべての属性を削除します。

- (void)resetAttributes

定義:

IGLabel.h

resetTextVariables

ラベルに追加されているすべての text 属性を削除します。

- (void)resetTextVariables

定義:

IGLabel.h

sizeToFitWidth

text に合わせるために IGLabel の高さを変更します。

- (void)sizeToFitWidth

注記

text に合わせながら幅の境界線を変更せずに IGLabel の高さを変更するには、このメソッドを使用します。このメソッドは、IGLabel が描画された必要があります。

定義:

IGLabel.h

updateTextVariableValue:value:

text 変数値を更新します。

- (void)updateTextVariableValue:(NSString *)variable value:(NSString *)value

パラメーター

variable

text 変数をその値に更新します。

value

更新した文字列値を変数と置き換えます。

定義:

IGLabel.h