我正在尝试查看 3 个不同标签的信息;第一的。标题二。发布日期 三。描述
在标题和发布日期之间有两个空行。有时,当标题超过 3 行时,会在发布日期写入。这是一张图片(粗线是发布日期标签):
有时当描述标签获得大量文本时,就会发生这种情况:
这就是它应该的样子:
所以问题: 1. 我怎样才能在标题和发布日期之间保存一个固定的空间?(无论标题多少行都会在两者之间保留一个固定的空间) 2.为什么当他得到大量文本时,描述会向下移动?我怎样才能固定他的位置?
我只想在 3 个标签之间保留一个空格,无论每个标签有多少行。
到目前为止,这是我的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
[_scroller setScrollEnabled:YES];
[_scroller setContentSize:CGSizeMake(320, 600)];
self.lblDescription.text = self.description;
self.lblTitle.text = self.stitle;
self.lblPubDate.text = self.pubDate;
self.lblTitle.numberOfLines = 0;
[self.lblTitle sizeToFit];
self.lblTitle.textAlignment = UITextAlignmentRight;
CGRect titleFram = self.lblTitle.frame;
titleFram = CGRectMake(titleFram.origin.x, titleFram.origin.y, 280, titleFram.size.height);
self.lblTitle.frame = titleFram;
self.lblDescription.numberOfLines = 0;
[self.lblDescription sizeToFit];
[self resizeHeightToFitForLabel:self.lblTitle];
[self resizeHeightToFitForLabel:self.lblDescription];
}
-(void)resizeHeightToFitForLabel:(UILabel *)label
{
CGRect newFrame = label.frame;
newFrame.size.height = [self heightForLabel:label withText:label.text];
label.frame = newFrame;
}
-(CGFloat)heightForLabel:(UILabel *)label withText:(NSString *)text
{
CGSize maximumLabelSize = CGSizeMake(290, FLT_MAX);
CGSize expectedLabelSize = [text sizeWithFont:label.font
constrainedToSize:maximumLabelSize
lineBreakMode:label.lineBreakMode];
return expectedLabelSize.height;
}
完成这项工作的最佳方法是什么?谢谢..