UITableViewCell
에 두 개의 UILabels
이 서로 아래에 수직으로 위치한다고 가정 해 봅시다. 줄 바꿈 모드는 두 가지 모두에 대해 UILineBreakModeWordWrap
으로 설정됩니다.동적으로 크기가 조정 된 UILabels를 수직으로 정렬하는 방법은 무엇입니까?
가로 크기는 고정되어 있지만 둘 다 표시되는 텍스트의 양에 따라 세로로 늘어날 수 있습니다. 중복되지 않도록 동적으로 아래에있는 것을 어떻게 배치합니까?
UITableViewCell
에 두 개의 UILabels
이 서로 아래에 수직으로 위치한다고 가정 해 봅시다. 줄 바꿈 모드는 두 가지 모두에 대해 UILineBreakModeWordWrap
으로 설정됩니다.동적으로 크기가 조정 된 UILabels를 수직으로 정렬하는 방법은 무엇입니까?
가로 크기는 고정되어 있지만 둘 다 표시되는 텍스트의 양에 따라 세로로 늘어날 수 있습니다. 중복되지 않도록 동적으로 아래에있는 것을 어떻게 배치합니까?
이 함수를 사용하여 텍스트의 높이를 얻은 다음 두 번째 레이블 높이를 결과로 설정합니다.
- (CGFloat)HeightOfText:(NSString *)textToMesure widthOfLabel:(CGFloat)width
{
UIFont *textFont = [UIFont systemFontOfSize:16];
CGSize ts = [textToMesure sizeWithFont:textFont constrainedToSize:CGSizeMake(width-20.0, FLT_MAX) lineBreakMode:UILineBreakModeWordWrap];
return ts.height+25.0; //you can change the last number to fit the space you wish to have between the labels.
}
은 당신이 그런 식으로 그것을 사용 :
이NSString *firstLabelText = @"the text";
CGFloat textSize = [self HeightOfText:firstLabelText widthOfLabel:firstLabel.frame.size.width];
는 다음 두 번째 레이블 높이를 설정하기 위해 "TEXTSIZE"를 사용합니다.
희망이 도움이 될 것입니다.
시도해보기 - [UILabel sizeThatFits :]. 300px 너비의 열에 레이블을 긋고 있다고 가정하면 (300,99999)의 크기를 전달할 수 있으며 텍스트를 실제로 넣을 때 필요한 크기를 알려줍니다.이 값을 사용하여 라벨의 틀을 적절하게
저는 아래 그림의 프레임을 재설정하여 비슷한 작업을 수행했습니다 (이미 sizeWithFont 또는 sizeThatFits를 완료하고 레이블의 크기를 변경했다고 가정). 이 유사 :
- (void)positionView:(UIView *)aView belowView:(UIView *)anotherView withPadding:(int)padding
{
CGRect aFrame = aView.frame;
if (anotherView)
{
aFrame = (anotherView.frame.origin.y + anotherView.frame.size.height);
}
aFrame.origin.y += padding;
aView.frame = aFrame;
}
샤니 년대 @ 더 나은 대답 sizeWithFont'이유는 constrainedToSize : lineBreakMode :의'UILabel의 추가하지만 sizeToFit'이 – deanWombourne
을 :) 것'사용하여 크기 자체에 UILabel의 요청합니다 여백을 포함하지 않습니다 좋은 지적. Upvoted @ shani의 –
안녕하세요, 답변 주셔서 감사합니다. 나는 그동안 경험 해왔고'sizeToFit'와'sizeWithFont' 메소드는 기본적으로 같은 결과를 제공한다는 것을 발견했습니다. 또한 'UILabel'의 줄 수를 0으로 설정하는 것도 도움이됩니다. 다른 줄에 설명되어 있습니다. – kadam