gpt4 book ai didi

iphone - UILabel - 灵活大小和固定空间的问题

转载 作者:行者123 更新时间:2023-11-28 20:20:51 25 4
gpt4 key购买 nike

我正在尝试查看有关 3 个不同标签的信息;第一的。标题二。发布日期三。说明

标题和发布日期之间有两个空行。有时当标题超过 3 行时,会在发布日期写上。这是一张图片(粗线是发布日期标签): title gets on pubDate

有时当描述标 checkout 现大量文本时,就会发生这种情况: enter image description here

它应该是这样的:

enter image description here

所以问题: 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;
}

完成这项工作的最佳方法是什么?谢谢..

最佳答案

你可以这样试试,

NSString *lbltext1 = lblTitle.text;
NSString *lbltext2 = lblDate.text;
NSString *lbltext3 = lblDesc.text;

CGRect rect = self.lblTitle.frame;
rect.size.height = [ViewController calculateHeightForText:lbltext1 font:self.lblTitle.font size:CGSizeMake(rect.size.width, 40000)].height;
self.lblTitle.frame = rect;

rect = self.lblDate.frame;
rect.origin.y = CGRectGetMaxY(self.lblTitle.frame) + 5;
rect.size.height = [ViewController calculateHeightForText:lbltext2 font:self.lblDate.font size:CGSizeMake(rect.size.width, 40000)].height;
self.lblDate.frame = rect;

rect = self.lblDesc.frame;
rect.origin.y = CGRectGetMaxY(self.lblDate.frame) + 5;
rect.size.height = [ViewController calculateHeightForText:lbltext3 font:self.lblDesc.font size:CGSizeMake(rect.size.width, 40000)].height;
self.lblDesc.frame = rect;

用于计算高度,

+ (CGSize)calculateHeightForText:(NSString *)text font:(UIFont *)font size:(CGSize)size {
CGSize _size = [text sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
return _size;
}

关于iphone - UILabel - 灵活大小和固定空间的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16079510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com