2 つの UILabels を垂直方向に並べたい。1 つは説明 (最大 3 行) を含み、もう 1 つは番号を含みます。
このような
頑張ったのですが、こんなのしか作れませんでした。
2 つの UILabels を垂直方向に並べたい。1 つは説明 (最大 3 行) を含み、もう 1 つは番号を含みます。
このような
頑張ったのですが、こんなのしか作れませんでした。
最初のラベルの高さを変更して、1 行だけに収まるようにするだけです。そうすることで、数字が自動的に上がります。
次のコードが機能します。
#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)];
操作方法についてご不明な点がございましたら、お知らせください。