1

2 つの UILabels を垂直方向に並べたい。1 つは説明 (最大 3 行) を含み、もう 1 つは番号を含みます。
このような

ここに画像の説明を入力

頑張ったのですが、こんなのしか作れませんでした。 ここに画像の説明を入力

4

2 に答える 2

0

最初のラベルの高さを変更して、1 行だけに収まるようにするだけです。そうすることで、数字が自動的に上がります。

于 2012-08-28T04:44:16.697 に答える
0

次のコードが機能します。

#define kDescriptionWidth 200

...

- (void)alignNumLabel:(UILabel *)numLabel withDescriptionLabel:(UILabel *)descriptionLabel topLeftPoint:(CGPoint)topLeftPoint {
    numLabel.frame = CGRectMake(topLeftPoint.x, topLeftPoint.y, 0, 0);
    [numLabel sizeToFit];

    CGSize maxDescriptionSize = CGSizeMake(kDescriptionWidth, (descriptionLabel.numberOfLines == 0 ? CGFLOAT_MAX : descriptionLabel.font.lineHeight * descriptionLabel.numberOfLines));
    CGSize labelSize = [descriptionLabel.text sizeWithFont:descriptionLabel.font constrainedToSize:maxDescriptionSize lineBreakMode:UILineBreakModeWordWrap];
    descriptionLabel.frame = CGRectMake(CGRectGetMaxX(numLabel.frame) + 5, numLabel.frame.origin.y, labelSize.width, labelSize.height);
}

それを使用するには、次のようにします。

[self alignNumLabel:numLabel withDescriptionLabel:descriptionLabel topLeftPoint:CGPointMake(10, 10)];
[self alignNumLabel:numLabel2 withDescriptionLabel:descriptionLabel2 topLeftPoint:CGPointMake(10, CGRectGetMaxY(descriptionLabel.frame) + 10)];

操作方法についてご不明な点がございましたら、お知らせください。

于 2012-08-28T05:39:14.533 に答える