[英]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.