溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ios7中的UILabel自適決定大小

發(fā)布時間:2020-06-28 17:56:33 來源:網(wǎng)絡(luò) 閱讀:974 作者:zxmhehehe123 欄目:移動開發(fā)
UILabel * testlable = [[UILabel alloc]initWithFrame:CGRectMake(10,20,200,20)];
    
   NSString * tstring =@"UILabel  ios7 與ios7之前實現(xiàn)自適應(yīng)撐高的方法,文本的內(nèi)容長度不一,我們需要根據(jù)內(nèi)容的多少來自動換行處理。在IOS7下要求font,與breakmode與之 前設(shè)置的完全一致sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByCharWrapping";
    
   testlable.numberOfLines =2;
    
   UIFont * tfont = [UIFont systemFontOfSize:14];
    
   testlable.font = tfont;
    
   testlable.lineBreakMode =NSLineBreakByTruncatingTail ;
    
   testlable.text = tstring ;
   [testlable setBackgroundColor:[UIColor redColor]];
    
   [self.view addSubview:testlable];
    
   //高度估計文本大概要顯示幾行,寬度根據(jù)需求自己定義。 MAXFLOAT 可以算出具體要多高
    
   CGSize size =CGSizeMake(300,60);
    
   // label可設(shè)置的最大高度和寬度
   //    CGSize size = CGSizeMake(300.f, MAXFLOAT);
 
   //    獲取當前文本的屬性
    
   NSDictionary * tdic = [NSDictionary dictionaryWithObjectsAndKeys:tfont,NSFontAttributeName,nil];
    
   //ios7方法,獲取文本需要的size,限制寬度
    
   CGSize  actualsize =[tstring boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin  attributes:tdic context:nil].size;
    
   // ios7之前使用方法獲取文本需要的size,7.0已棄用下面的方法。此方法要求font,與breakmode與之前設(shè)置的完全一致
   //    CGSize actualsize = [tstring sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByCharWrapping];
   //   更新UILabel的frame
    
    
   testlable.frame =CGRectMake(10,20, actualsize.width, actualsize.height);


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI