a のテキストを、iOS のxibUILabel
を介して行間で垂直方向に揃えたいとします。次に例を示します。
hello,
how are
you?
私を助けてください。
a のテキストを、iOS のxibUILabel
を介して行間で垂直方向に揃えたいとします。次に例を示します。
hello,
how are
you?
私を助けてください。
はい、xib を介して行間を調整することは可能です。xib の UIlabel をクリックし、'text' プロパティ タイプを 'Attributed' に変更してから、次の画像に進みます。次に、新しい行を入力し(ctrl-return ショートカット キーを押します)、カーソルを 2 つの行の間に置いてから、必要な「行」プロパティと「最大高さ」プロパティを調整します。私の UILael テキストは「こんにちは、お元気ですか?」です。
この単純な UILabel サブクラスを作成します。
@interface CustomLabel : UILabel
@property (assign, nonatomic) CGFloat myLineSpacing;
@end
@implementation CustomLabel
- (void)setMyLineSpacing:(CGFloat)myLineSpacing {
_myLineSpacing = myLineSpacing;
self.text = self.text;
}
- (void)setText:(NSString *)text {
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = _myLineSpacing;
paragraphStyle.alignment = self.textAlignment;
NSDictionary *attributes = @{NSParagraphStyleAttributeName: paragraphStyle};
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text
attributes:attributes];
self.attributedText = attributedText;
}
myLineSpacing
IB でプロパティ値を設定します。
それでも IB でプレビューすることはできませんが、行間隔の値はxibにあります。行間を気にせずにコードに
設定できます。label.text
注:
プロパティ名を " " にしないでくださいlineSpacing
。UILabel には文書化されていない lineSpacing プロパティがあり、それをオーバーライドすると何かが壊れます。
TextEdit などの任意のテキスト エディターで希望どおりに入力し、xib のラベルのテキスト セクションに貼り付けます。
ただし、ラベルの高さがコンテンツに合うようにし、行数を増やしてください。この場合、3 つ以上になる可能性があります。