iOS之文字自適應

自適應一般分為2種 label和button的文字自適應

下面分情況說明

>比較古老的方法 (封裝 傳入字體大小 和文本內容)

label.numberOfLines = 0; //自動換行

label.font = [UIFont systemFontOfSize:14];

label.textAlignment = NSTextAlignmentLeft;

label.text = @"iOS之行在路上";

CGSize size = [self sizeWithString:label.text font:label.font]; //2個參數 文本和字體

label.bounds = CGRectMake(0, 0, size.width, size.height);



- (CGSize)sizeWithString:(NSString *)string font:(UIFont *)font

{

CGRect rect = [string boundingRectWithSize:CGSizeMake(200, 300) //限制最大的寬度和高度

options:NSStringDrawingTruncatesLastVisibleLine |? NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin //采用換行模式

attributes:@{NSFontAttributeName:font} //傳入字體

context:nil];

return rect.size;

}

>根據字體得到NSString的大小? sizeWithAttributes(這個方法)

UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:14];

self.TextLabel.font = fnt;

CGSize size = [self.TextLabel.text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:fnt,NSFontAttributeName, nil]];

self.TextLabel.frame=CGRectMake(self.goodsImg.frame.origin.x+self.goodsImg.bounds.size.width+8, 69, size.width, 18);

>label 自適應方法

UILabel? *label =[UILabel alloc] init];

label.frame =CGRectMake(0,0,width, 30);

label.numberOfLine=0;

label.text =@"11111111111111111111111111111111111";

[label sizeToFit];

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • UILabel是一個常用的控件,它的屬性設置的方法在純代碼中經常使用。在storyboard中,使用UILabel...
    坤哥lqk閱讀 867評論 0 2
  • 1、設置UILabel行間距 NSMutableAttributedString* attrString = [[...
    十年一品溫如言1008閱讀 1,731評論 0 3
  • 1、設置UILabel行間距 NSMutableAttributedString* attrString = [[...
    FF_911閱讀 1,426評論 0 3
  • 17歲是個代表了很多意象的年紀。 于少年是瘋狂無知的,劍拔弩張的;而對于少女,則是懵懂,美麗,似要長大成人卻又停駐...
    萌萌噠阿吹閱讀 306評論 0 0
  • 【三月初三】 . 三月暖陽覆蓋的正午后, 我經歷了一場倉促和容易感冒的夢醒來, 像個因醉酒而干枯的少年, 對所有清...
    宇斯閱讀 279評論 0 3