6

a のテキストを、iOS のxibUILabelを介して行間で垂直方向に揃えたいとします。次に例を示します。

 hello,
 how are
 you?

私を助けてください。

4

4 に答える 4

10

はい、xib を介して行間を調整することは可能です。xib の UIlabel をクリックし、'text' プロパティ タイプを 'Attributed' に変更してから、次の画像に進みます。次に、新しい行を入力し(ctrl-return ショートカット キーを押します)、カーソルを 2 つの行の間に置いてから、必要な「行」プロパティと「最大高さ」プロパティを調整します。私の UILael テキストは「こんにちは、お元気ですか?」です。

ここに画像の説明を入力

于 2014-07-18T14:03:02.923 に答える
6

この単純な 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;
}

myLineSpacingIB でプロパティ値を設定します。

スクリーンショット

それでも IB でプレビューすることはできませんが、行間隔の値はxibにあります。行間を気にせずにコードに
設定できます。label.text

注:
プロパティ名を " " にしないでくださいlineSpacing。UILabel には文書化されていない lineSpacing プロパティがあり、それをオーバーライドすると何かが壊れます。

于 2014-07-18T11:18:48.527 に答える
-7

TextEdit などの任意のテキスト エディターで希望どおりに入力し、xib のラベルのテキスト セクションに貼り付けます。

ただし、ラベルの高さがコンテンツに合うようにし、行数を増やしてください。この場合、3 つ以上になる可能性があります。

ここに画像の説明を入力

于 2014-07-18T08:34:14.880 に答える