UILabel
継承:UIView : UIResponder : NSObject(Class)
従属:UIAppearanceContainer, NSCoding, UIFocusEnvironment, UICoordinateSpace, NSObject(Protocol), UITraitEnvironment, UIDynamicItem, UIAppearance
フレームワーク: iOS 2.0 以降の UIKit。関連情報...
概観
UILabel クラスは、読み取り専用のテキストビューを実装します。ユーザインターフェースの他の部分を識別するために使用する可能性があるような、静的なテキストの一行以上の行を描画するためにこのクラスを使用できます。基本の UILabel クラスは、ラベルテキストの単純な、および複雑なスタイリングの両方のサポートを提供します。また、ラベルが影を使用するか、ハイライトで描画するかどうかなどの外観の特徴を、制御できます。必要な場合は、サブクラス化することによって、さらにあなたのテキストの外観をカスタマイズできます。
UILabel クラスのデフォルトのコンテンツモードは、UIViewContentModeRedraw です。このモードは、毎回、その境界の長方形の変更するたび、その内容をビューに再描画させます。クラスの継承された contentMode プロパティを変更することにより、このモードを変更できます。
新しいラベルオブジェクトは、デフォルトではユーザイベントとクリップのサブビューを無視するように構成されています。UILabel のカスタムサブクラスでイベントを処理したい場合は、オブジェクトを初期化した後、 userInteractionEnabled プロパティの値を YES に明示的に変更しなければなりません。サブビューをラベルの境界を越えて拡張できるようにしたい場合は、ラベルの clipsToBounds プロパティの値を明示的に NO 変更しなければなりません。
基本的なビューの動作の詳細については、iOS 用ビュープログラミングガイド を参照してください。
外観と動作の構成の詳細については、UIKit ユーザーインターフェイスカタログ の ラベル を参照してください。
タスク
テキスト属性へのアクセス
text プロパティ
ラベルによって表示されるテキスト。
宣言
<< SWIFT >>
var text: String? << OBJECTIVE-C >> @property(nonatomic, copy) NSString *text
議論
この文字列は、デフォルトでは nil です。
iOS 6 以降では、このプロパティに新しい値を割り当てることも、任意の固有のスタイル属性なしとはいえ、同じテキストで attributedText プロパティの値を置き換えます。代わりに shadowColor、textAlignment、およびクラスの他のスタイル関連プロパティを使用して、ラベルに新しい文字列のスタイルとします。
利用可能
iOS 2.0 以降で利用可能。
attributedText プロパティ
ラベルに表示されたスタイル付きテキスト。
宣言
<< SWIFT >>
@NSCopying var attributedText: NSAttributedString? << OBJECTIVE-C >> @property(nonatomic, copy) NSAttributedString *attributedText
議論
このプロパティは、デフォルトでは nil です。このプロパティに新しい値を割り当てる事も、任意のフォーマット情報なしとはいえ、同じ文字列データで text プロパティの値を置き換えます。加えて、font, textColor, 及び他のスタイルに関連するプロパティ内の値を更新する新しい値を割り当てると、それらは属性文字列内の位置 0 から始まるスタイル情報を反映します。
ラベル内の自動カーニングをオンにするには、文字列の NSKernAttributeName を [NSNull null] に設定します。
利用可能
iOS 6.0 以降で利用可能。
font プロパティ
テキストのフォント。
宣言
<< SWIFT >>
var font: UIFont! << OBJECTIVE-C >> @property(nonatomic, strong) UIFont *font
議論
iOS 6 以降でスタイル付きテキストを使用している場合、このプロパティに新しい値を割り当てると、フォントが attributedText プロパティ内の文字列全体に適用されます。テキストの一部だけにフォントを適用したい場合は、望みのスタイル情報を持つ新しい属性の文字列を作成し、それをラベルに関連付けて下さい。スタイル付きテキストを使用していない場合、このプロパティは、text プロパティ内のテキスト文字列全体に適用されます。
このプロパティのデフォルト値は(UIFont のクラス・メソッド systemFontOfSize: を使用して) 17 ポイントサイズのシステムフォントです。プロパティの値は、nil でない値のみに設定できます。このプロパティを nil に設定すると、例外が発生します。
利用可能
iOS 2.0 以降で利用可能。
textColor プロパティ
テキストの色。
宣言
<< SWIFT >>
var textColor: UIColor! << OBJECTIVE-C >> @property(nonatomic, strong) UIColor *textColor
議論
iOS 6 以降でスタイル付きテキストを使用している場合、このプロパティに新しい値を代入すると、色が attributedText プロパティ内の文字列全体に適用されます。テキストの一部のみに色を適用する場合は、望みのスタイル情報を持つ新しい属性の文字列を作成し、ラベルにそれを関連付けて下さい。スタイル付きテキストを使用していない場合、このプロパティは、text プロパティ内のテキスト文字列全体に適用されます。
このプロパティのデフォルト値は(UIColor の blackColor のクラスメソッドを介して設定される) 黒色です。プロパティの値は、nil でない値に設定することのみができます。このプロパティを nil に設定すると、例外が発生します。
利用可能
iOS 2.0 以降で利用可能。
textAlignment プロパティ
テキストを整列させるために使用する技術。
宣言
<< SWIFT >>
var textAlignment: NSTextAlignment << OBJECTIVE-C >> @property(nonatomic) NSTextAlignment textAlignment
議論
iOS 6 以降でスタイル付きテキストを使用している場合、このプロパティに新しい値を代入すると、テキストの配置が attributedText プロパティ内の文字列全体に適用されます。テキストの一部のみに配置を適用したい場合は、望みのスタイル情報を持つ新しい属性付き文字列を作成し、ラベルにそれを関連付けて下さい。スタイル付きテキストを使用しない場合、このプロパティは、text プロパティ内のテキスト文字列全体に適用されます。
このプロパティのデフォルト値は NSTextAlignmentLeft です。
特別な考慮事項
iOS 5 以前では、このプロパティ型は UITextAlignment でした。
利用可能
iOS 2.0 以降で利用可能。
lineBreakMode プロパティ
ラベルのテキストを包み込み、切り捨てるために使用される技術。
宣言
<< SWIFT >>
var lineBreakMode: NSLineBreakMode << OBJECTIVE-C >> @property(nonatomic) NSLineBreakMode lineBreakMode
議論
スタイル付きテキストを使用していない場合、このプロパティは、text プロパティ内のテキスト文字列全体に適用されます。iOS 6 以降でスタイル付きテキストを使用している場合、このプロパティに新しい値を割り当てると、改行モードは attributedText プロパティ内の文字列全体に適用されます。テキストの一部のみに改行モードを適用したい場合は、望みのスタイル情報を持つ新しい属性付き文字列を作成し、ラベルにそれを関連付けて下さい。しかし、NSParagraphStyle プロパティは、NSParagraphStyle で定義されたもののように、段落全体に適用され (paragraphRangeForRange: で定義されているように)、段落内の単語にではありません。
このプロパティは、通常の描画時と、フォントサイズが、その跳ね返るボックス内のラベルテキストに合わせて縮小しなければならない場合、両方に効果があります。このプロパティは、デフォルトで NSLineBreakByTruncatingTail に設定されています。
重要: iOS 6 以前では、テキストを別の行にラップするように値にこのプロパティを設定する場合、 adjustsFontSizeToFitWidth または adjustsLetterSpacingToFitWidth プロパティのいずれかを YES に設定するのは、プログラマのエラーになります。
特別な考慮事項
iOS 5 以前では、このプロパティの型は UILineBreakMode でした。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
adjustsFontSizeToFitWidthenabled プロパティ
ラベルのテキストを描画するときに使用可能な状態にするのに使用します。
宣言
<< SWIFT >>
var enabled: Bool << OBJECTIVE-C >> @property(nonatomic, getter=isEnabled) BOOL enabled
議論
このプロパティは、ラベルが描かれている方法だけを決定します。無効にしたテキストは、それがアクティブでないことを示すために、いくらか薄暗く表示されます。このプロパティは、デフォルトでは YES に設定されています。
利用可能
iOS 7.0 以降で利用可能。
以下も見よ
adjustsFontSizeToFitWidthラベルのテキストのサイズ変更
adjustsFontSizeToFitWidth プロパティ
ラベル境界の長方形にタイトルの文字列を収めるためにフォントサイズを、縮小する必要があるかどうかを示すブール値。
宣言
<< SWIFT >>
var adjustsFontSizeToFitWidth: Bool << OBJECTIVE-C >> @property(nonatomic) BOOL adjustsFontSizeToFitWidth
議論
通常、ラベルテキストは、font プロパティで指定したフォントで描画されます。しかし、このプロパティが YES に設定され、text プロパティ内のテキストがラベルの境界の長方形を超える場合、受信者は、文字列が収まるか最小フォントサイズに到達するまでフォントサイズを小さくすることを開始します。iOS 6 以前では、このプロパティは numberOfLines プロパティが 1 に設定されている場合にのみ有効です。
このプロパティのデフォルト値は NO です。あなたが YES に変更した場合、minimumFontSize のプロパティを変更することによって、適切な最小フォントサイズを設定する必要もあります。
重要: iOS 6 以前では、このプロパティが YES に設定されている場合、別の行を包み込むテキストになる値に lineBreakMode プロパティを設定するのは、プログラマのエラーです。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
fontminimumFontSize
allowsDefaultTighteningForTruncation プロパティ
ラベルが切り捨ての前にテキストを引き締めをするかどうかを示すブール値。
宣言
<< SWIFT >>
var allowsDefaultTighteningForTruncation: Bool << OBJECTIVE-C >> @property(nonatomic) BOOL allowsDefaultTighteningForTruncation
議論
このプロパティを YES に設定すると、ラベルは全ての切り捨てが発生するのを許可する前に、そのテキストの文字間の間隔を詰めます。ラベルは、フォント、現在の線の幅、改行モード、およびその他の関連情報に基づいて、自動的に詰めるべき最大量を決定します。
このプロパティのデフォルト値は NO です。
利用可能
iOS 9.0 以降で利用可能。
baselineAdjustment プロパティ
テキストがラベルに収まるように縮小する必要があるときに、テキストのベースラインを調整する方法を制御します。
宣言
<< SWIFT >>
var baselineAdjustment: UIBaselineAdjustment << OBJECTIVE-C >> @property(nonatomic) UIBaselineAdjustment baselineAdjustment
議論
adjustsFontSizeToFitWidth プロパティが YES に設定されている場合、このプロパティは、フォントサイズの調整が必要とされる状況では、テキストのベースラインの動作を制御します。このプロパティのデフォルト値は UIBaselineAdjustmentAlignBaselines です。このプロパティは、numberOfLines プロパティが 1 に設定されている場合のみ有効です。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
adjustsFontSizeToFitWidthminimumScaleFactor プロパティ
ラベルのテキストのためサポートされている最小スケールファクタ。
宣言
<< SWIFT >>
var minimumScaleFactor: CGFloat << OBJECTIVE-C >> @property(nonatomic) CGFloat minimumScaleFactor
議論
ラベルのテキストを表示するときに使用するように許容可能なフォントサイズをもたらす現在のフォントサイズの最小の乗数を指定するには、このプロパティを使用して下さい。このプロパティに 0 の値を指定しすると、現在のフォントサイズが最小フォントサイズとして使用されます。
このプロパティのデフォルト値は 0 です。
利用可能
iOS 6.0 以降で利用可能。
numberOfLines プロパティ
テキストのレンダリングに使用する最大行数。
宣言
<< SWIFT >>
var numberOfLines: Int << OBJECTIVE-C >> @property(nonatomic) NSInteger numberOfLines
議論
このプロパティは、行の最大数を制御して、その境界の長方形にラベルのテキストを適合させるために使用します。このプロパティのデフォルト値は 1 です。全ての上限を削除し、必要なだけ多くの線を使用するにはこのプロパティの値を 0 に設定します。
このプロパティを使用してテキストを制約した場合、最大行数内とラベルの境界の長方形の内側に適合しない全てのテキストは、適切な改行モードを使用して切り捨てられます。
受信者は sizeToFit メソッドを使用してサイズが変更されると、サイズの変更はこのプロパティに格納された値を考慮に入れます。例えば、このプロパティが 3 に設定されている場合、3 行のテキストを表示するのに十分な大きさであるように、sizeToFit メソッドは、受信者のサイズを変更します。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
enabledadjustsFontSizeToFitWidth
sizeToFit (UIView)
adjustsLetterSpacingToFitWidth プロパティ
(iOS 7.0)文字間の間隔が、ラベルの境界の長方形内の文字列に合わせて調整する必要があるかどうかを示すブール値。
旧式の文
追跡に影響を与えるには NSKernAttributeName を使用するのではなく、手で調整してください。
宣言
<< OBJECTIVE-C >>
@property(nonatomic) BOOL adjustsLetterSpacingToFitWidth
議論
このプロパティが YES の場合、ラベルは、そのテキストがラベルの境界内に、より良くフィットするようにラベルテキストの文字間隔を変更できます。このプロパティは、現在の改行モードに関係なく、文字列に適用されます。このプロパティのデフォルト値は NO です。
このプロパティの値を YES にすると、ラベルテキストに関連付けられた全ての NSParagraphStyle オブジェクトの tighteningFactorForTruncation メソッドによって返される値をラベルは無視します。
重要: このプロパティを YES に設定している場合、別の行に包み込まれるテキストになる値に lineBreakMode プロパティを設定するのは、プログラマのエラーです。
利用可能
iOS 6.0 以降で利用可能。
iOS 7.0 で旧式となる。
minimumFontSize プロパティ
(iOS 6.0)ラベルのテキストを描画する、許容される最小のフォントサイズ。
旧式の文
代わりに minimumScaleFactor を使用してください。
宣言
<< OBJECTIVE-C >>@property(nonatomic) CGFloat minimumFontSize
議論
ラベルの境界の長方形内に収まらない可能性があるテキストを描画するとき、それがもはや判読可能でないポイントにフォントサイズを少なくする事から受信者を防ぐために、このプロパティを使用できます。
このプロパティのデフォルト値は 0.0 です。ラベルのフォント調整を有効にした場合は、常にこの値を増やす必要があります。このプロパティは、numberOfLines プロパティが 1 に設定されている場合のみ有効です。
利用可能
iOS 2.0 以降で利用可能。
iOS 6.0 で旧式となる。
以下も見よ
adjustsFontSizeToFitWidthハイライト値の管理
highlightedTextColor プロパティ
ラベルのテキストに適用されるハイライトの色。
宣言
<< SWIFT >>
var highlightedTextColor: UIColor? << OBJECTIVE-C >> @property(nonatomic, strong) UIColor *highlightedTextColor
議論
テキストボタンの種類を実装するためにラベルを使用するサブクラスは、ボタンの押された状態を描画するときに、このプロパティの値を使用できます。この色は highLighted プロパティを YES に設定されているといつでも自動的にラベルに適用されます。
このプロパティのデフォルト値は nil です。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
highLightedhighLighted プロパティ
受信者が、ハイライトで描画する必要があるかどうかを示すブール値。
宣言
<< SWIFT >>
var highlighted: Bool << OBJECTIVE-C >> @property(nonatomic, getter=isHighlighted) BOOL highlighted
議論
このプロパティを設定すると、受信者に適切なハイライト状態で再描画するようにさせます。テキストボタンを実装するサブクラスは、ユーザーがボタンを押したときにこのプロパティを YES に設定し、他の時点で NO に設定するかもしれません。ハイライトを描画するには、highlightedTextColor プロパティが nil でない値を含めなければなりません。
このプロパティのデフォルト値は NO です。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
highlightedTextColor影の描画
shadowColor プロパティ
テキストの影の色。
宣言
<< SWIFT >>
var shadowColor: UIColor? << OBJECTIVE-C >> @property(nonatomic, strong) UIColor *shadowColor
議論
このプロパティのデフォルト値は nil で、影が描かれていないことを示します。このプロパティに加えて、shadowOffset プロパティも変更して、デフォルトのシャドウのオフセットを変更すできます。テキストの影は指定されたオフセットと、色とにじみのない指定で描画されます。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
shadowOffset プロパティ
テキストの(ポイント単位で測定した)影のオフセット。
宣言
<< SWIFT >>
var shadowOffset: CGSize << OBJECTIVE-C >> @property(nonatomic) CGSize shadowOffset
議論
このプロパティが、効果を持つようにするためには影の色が nil でなければなりません。デフォルトのオフセットサイズは(0、-1) で、テキストの上に影を 1 ポイント示しています。テキストの影は指定されたオフセットと色とにじみのない指定で描画されます。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
shadowColor描画と位置のオーバーライド
- textRectForBounds:limitedToNumberOfLines:
ラベルのテキストの描画用長方形を返します。
宣言
<< SWIFT >>
func textRectForBounds(_ bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect << OBJECTIVE-C >> - (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines
パラメーター
bounds | 受信者の境界の長方形。 |
numberOfLines | ラベルに使用する最大の行数。値 0 は、そこに最大の行数がなく、長方形がテキストの全てを包含すべきであることを示しています。 |
戻り値
ラベルのテキストで計算された描画用長方形。
議論
このメソッドは、他の計算を実行する前に、受信者の境界の長方形を変更したいサブクラスでのみオーバーライドする必要があります。テキストの指定した行数に返される長方形の高さを制限するために numberOfLines パラメータの値を使用して下さい。
sizeToFit または sizeThatFits の前に呼び出しがあった場合は、このメソッドは、システムによって呼び出されることがあります。UITableViewCell オブジェクト内のラベルは、要求されたサイズではなくセルの寸法に基づいて寸法を決められたことに注意してください。
利用可能
iOS 2.0 以降で利用可能。
- drawTextInRect:
指定した長方形に受信者のテキスト(またはその影) を描画します。
宣言
<< SWIFT >>
func drawTextInRect(_ rect: CGRect) << OBJECTIVE-C >> - (void)drawTextInRect:(CGRect)rect
パラメーター
rect | その中でテキストを描画すべき長方形。 |
議論
このメソッドを直接呼び出すべきではありません。このメソッドは、ラベルのテキストのデフォルトの描画動作を変更したいサブクラスでオーバーライドする必要があります。
このメソッドが呼び出された時点では、現在のグラフィックスコンテキストは、既に描画のデフォルトの環境とテキストの色で構成されています。オーバーライドされたメソッドでは、さらに現在のコンテキストを構成し、実際の描画を行うには、super を呼び出すか、またはあなた自身で描画を行えます。テキストを自分でレンダリングする場合は、super を呼び出すべきではありません。
利用可能
iOS 2.0 以降で利用可能。
レイアウトの制約を取得
preferredMaxLayoutWidth プロパティ
複数行ラベル用の(ポイント単位での) 好みの最大幅。
宣言
<< SWIFT >>
var preferredMaxLayoutWidth: CGFloat << OBJECTIVE-C >> @property(nonatomic) CGFloat preferredMaxLayoutWidth
議論
レイアウト制約がラベルのサイズに適用されている場合、このプロパティは、それに影響します。テキストが、このプロパティで指定された幅を超えて拡張する場合、レイアウト時には、追加のテキストはこれにより、ラベルの高さを高くする、1 つ以上の新しい行に流されます。
利用可能
iOS 6.0 以降で利用可能。
属性の設定と取得
userInteractionEnabled プロパティ
ユーザーイベントが無視され、イベントキューから削除されるかどうかを決定するブール値。
宣言
<< SWIFT >>
var userInteractionEnabled: Bool << OBJECTIVE-C >> @property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled
議論
このプロパティは、UIView の親クラスから継承されます。このクラスは、このプロパティのデフォルト値を NO に変更します。
利用可能
iOS 2.0 以降で利用可能。
以下も見よ
userInteractionEnabled (UIView)
clipsToBounds プロパティ
サブビューがビューの境界に限定されているかどうかを決定するブール値。
宣言
<< OBJECTIVE-C >>
@property(nonatomic) BOOL clipsToBounds
議論
このプロパティは、UIView の親クラスから継承されます。このクラスは、このプロパティのデフォルト値を YES に変更します。
以下も見よ
clipsToBounds (UIView)
次の章