3 つの異なるラベルに関する情報を表示しようとしています。初め。タイトル 2。発売日 3. 説明
タイトルとリリース日の間には 2 行の空白行があります。タイトルが 3 行を超える場合は、発行日に記載されることがあります。これが写真です(太線はパブの日付ラベルです):
説明ラベルに大量のテキストが表示されると、次のことが起こります。
これはそのあるべき姿です:
質問: 1. タイトルと公開日の間に固定スペースを確保するにはどうすればよいですか? (タイトルが何行あっても、2 つの間に固定スペースが残ります) 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;
}
これを行うための最良の方法は何ですか?ありがとう..