前言
本文主要給大家介紹了關于ios自動獲取label高度、寬度及最后一個位置的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
一、獲取寬度,獲取字符串不折行單行顯示時所需要的長度
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
注:如果想得到寬度的話,size的width應該設為MAXFLOAT。
二、獲取高度,獲取字符串在指定的size內(寬度超過label的寬度則換行)所需的實際高度.
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
注:如果想得到高度的話,size的height應該設為MAXFLOAT。
三、實際編程時,有時需要計算一段文字最后一個字符的位置,并在其后添加圖片或其他控件(如info圖標)
下面代碼為計算label中最后一個字符后面一位的位置的方法。
CGSize sz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(MAXFLOAT, 40)];CGSize linesSz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];if(sz.width <= linesSz.width) //判斷是否折行{lastPoint = CGPointMake(label.frame.origin.x + sz.width, label.frame.origin.y);}else{lastPoint = CGPointMake(label.frame.origin.x + (int)sz.width % (int)linesSz.width,linesSz.height - sz.height);}
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。
|
新聞熱點
疑難解答