簡體   English   中英

UILabel文本被切斷了

[英]UILabel text gets cut off

我正在嘗試動態設置標簽大小。 它以一種奇怪的方式工作,我將一些文本切斷。 我首先設置我的標簽文本,然后嘗試像這樣調整大小。

    _switch2Label.text = @"Call on alarm, there will be no call if other user of alarm system will recieve an alarm call and confirm (answer) it by pressing 0#";
    _switch2Label.numberOfLines = 0;
    [self newFrame:_switch2Label];

- (void) newFrame:(UILabel *) label
{

    CGSize maxSize = self.view.bounds.size;
    maxSize.width = maxSize.width - 30;
    CGSize labelSize = [label.text sizeWithFont:label.font constrainedToSize:maxSize lineBreakMode:label.lineBreakMode];

    CGRect newFrame = label.frame;
    newFrame.size.height = labelSize.height;
    label.frame = newFrame;

}

我只得到三行文字,而這個標簽需要五行。 也許有人可以在這看到我的錯誤? 如果我向標簽添加更多文本,它會被顯示,但仍然會有大約兩行標簽文本被刪除。

 _switch2Label.text = @"Call on alarm, there will be no call if other user of alarm system will recieve an alarm call and confirm (answer) it by pressing 0#,";
 _switch2Label.numberOfLines = 0;
 [self newFrame:_switch2Label];



- (void) newFrame:(UILabel *) label
{

    CGSize maximumSize = CGSizeMake(label.frame.size.width, 10000);
    //maxSize.width = maxSize.width - 30;
    CGSize labelSize = [label.text sizeWithFont:label.font constrainedToSize:maximumSize lineBreakMode:UILineBreakModeWordWrap];

    CGRect newFrame = label.frame;
    newFrame.size.height = labelSize.height;
    label.frame = newFrame;

}

使用此代碼塊,可能會對您有所幫助。

我已經改變了你的方法...請檢查..它可以幫助你..

- (void) newFrame:(UILabel *) label
{
     CGSize constraint = CGSizeMake(300, 1000.0f);
     CGSize size_txt_overview1 = [label.text sizeWithFont:[UIFont fontWithName:@"Arial Rounded MT Bold" size:15] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
     label.frame = CGRectMake(20,20, size_txt_overview1.width, size_txt_overview1.height+15);
}

為什么以編程方式調整標簽大小? 這是你在IB中無法做到的事情還是使用autorezizeMask

標簽的約束大小未按您的意圖計算,目前,您的代碼將標簽高度限制為視圖的邊界高度。 將maxSize實例更改為:

CGSize maxSize = CGSizeMake(self.view.bounds.size.width - 30, MAXFLOAT);
CGSize labelSize = ...

這樣做將確保約束不受視圖邊界的約束。 如果希望標簽能夠超出視圖的邊界,您可能還需要考慮設置視圖的clipsToBounds屬性。

暫無
暫無

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

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