2

ビューがあり、そのビューに一連のラベルを付けたいのですが、ラベルの数と各ラベルのテキストの長さが異なります。

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 300, 50)];
label.text = @"Varying text length here";
label.numberOfLines = 0;
[label sizeToFit];
[[self view] addSubview:label];

ラベルが 1 ~ 4 行になる可能性がある場合、このラベルの下にプログラムで別のラベルを 25 の距離で追加する最も簡単な方法は何ですか?

4

2 に答える 2

5

これを試して:

CGFloat offset = 25.0f;

CGRect frame1 = CGRectMake(10, 100, 30, 50);

UILabel *label = [[UILabel alloc] initWithFrame:frame1];
label.text = @"Varying text length here";
label.numberOfLines = 0;
[label sizeToFit];
[[self view] addSubview:label];

CGRect frame2 = CGRectMake(10,
                           label.frame.origin.y + label.frame.size.height + offset,
                           300,
                           50);

UILabel *label2 = [[UILabel alloc] initWithFrame:frame2];
label2.text = @"Varying text length here";
label2.numberOfLines = 0;
[label2 sizeToFit];
[[self view] addSubview:label2];

前のラベルのフレーム + 25 に基づいて、次のラベルのフレームを設定します。

于 2013-01-13T01:17:03.460 に答える
1

UICollectionViewFlowLayoutを見てください。要素のグリッドを処理します。まさにあなたが望むものです。

このプロパティの値を変更します。

@property (nonatomic) CGSize itemSize;

各アイテムのサイズを指定するには (あなたの場合は 300,50 になります)。これも:

@property (nonatomic) CGFloat minimumLineSpacing;

アイテム間のギャップを処理します。

于 2013-01-13T01:08:12.360 に答える