簡體   English   中英

如何動態制作UILabel而不與其他UILabel重疊

[英]how to make UILabel dynamically without overlapping with other UILabel

我已經嘗試過在線搜索,但是沒有找到明確的答案,因此,我開始尋求您的專家意見。 我有一個帶有2個標簽的視圖。 兩個標簽將顯示與plist不同的字符串長度。

當我運行應用程序時,標簽將與其他標簽重疊,具體取決於字符串長度。

以下是我的問題的屏幕截圖

在此處輸入圖片說明

您必須更改您的secondLabel來源。

CGRect frame = secondLabel.frame;
frame.origin.y= firstLabel.frame.origin.y + firstLabel.frame.size.height;
[secondLabel setFrame:frame];

更好的選擇是使用UITextView而不是UILabel但是如果您仍然想使用lable,那么使用以下代碼,您可以找到文本的高度,並可以根據該高度設置lable的框架

NSString *text = [arr objectAtIndex:indexPath.row];
CGSize constraint = CGSizeMake(contentWidth - (CELL_CONTENT_MARGIN * 2), 20000.0f);
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:20] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];
CGFloat height = MAX(size.height, 44.0f);

這里contentWidth是標簽的寬度,CELL_CONTENT_MARGIN = 10;

是的,您可以通過多種方式解決它。

例如,您可以在第一個標簽中填入所需的文本,然后調用

[label1 sizeToFit]

通過該調用,您的標簽現在具有適當的大小,可以適應文本的長度。 現在,您可以將第二個標簽放在第一個標簽之后。

label2.frame = CGRectMake (x, label1.frame.size.height + ..., .....)

希望能幫助到你!

您需要設置第二個標簽的“ Y”。 取第一個標簽文本的高度,然后將其設置為第二個標簽“ Y”。
希望對您有幫助。

CGSize LblSize=[[Label1 text] sizeWithFont:[UIFont systemFontOfSize:14.0f] constrainedToSize:CGSizeMake(320.0f, 400.0f)];


UILabel *Label2=[[UILabel alloc] initWithFrame:Label2Rect];

CGRect Label2Rect=[Label2 Frame];
Label2Rect.origin.y=LblSize.height+30.0f; //add some extra spaces, I have added 30.0f here

[Label2 setFrame:Label2Rect];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM