UGUI_Text的顯示
Text的顯示,若內容長度過長顯示(內容…)
若Text本來能容納7個字的,7個字為正常字.但伺服器往往取出來的字串不定長…過長就顯示6+…
/// <summary>
/// 暱稱長度的顯示 返回值(渣渣曾detail...:+20)
/// </summary>
public string GetUITextContent(Text uiTemp, string strTemp, float containerWidth)
{
if (strTemp == null) return "";
if (strTemp == "") return "";
Font font = uiTemp.font;
font.RequestCharactersInTexture(strTemp, uiTemp.fontSize, uiTemp.fontStyle);
CharacterInfo characterInfo;
float width = 0f;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 0; i < strTemp.Length; i++)
{
font.GetCharacterInfo(strTemp[i], out characterInfo, uiTemp.fontSize);
width += characterInfo.advance;
if (width < containerWidth)
{
sb.Append(strTemp[i]);
}
}
if (containerWidth > width)//本來能容納
return sb.ToString();
else
return sb.Remove(sb.Length - 1, 1).Append("...").ToString();
}
/// <summary>
/// 暱稱長度的顯示 返回值(渣渣曾detail.....)
/// </summary>
public string GetUITextContent(Text uiTemp, string strTemp)
{
float containerWidth = uiTemp.GetComponent<RectTransform>().sizeDelta.x;//容器的width
return GetUITextContent(uiTemp, strTemp, containerWidth);
}
/// <summary>
/// 暱稱長度的顯示 原長度為(渣渣曾detail是姓曾的)顯示為(渣渣曾detail...)
/// </summary>
public void SetUITextContent(Text uiTemp, string strTemp)
{
var str = GetUITextContent(uiTemp, strTemp);
uiTemp.text = str;
}
UGUI_Image長度跟隨Text的內容而設定
public void SetImageText(string strTemp)
{
var tempText = this.msgItemPerfab.GetComponentInChildren<Text>();
Font font = tempText.font;
font.RequestCharactersInTexture(strTemp, tempText.fontSize, tempText.fontStyle);
CharacterInfo characterInfo;
float width = 0f;
for (int i = 0; i < strTemp.Length; i++)
{
font.GetCharacterInfo(strTemp[i], out characterInfo, tempText.fontSize);
width += characterInfo.advance;
}
//計算出長度
var tempTr = this.msgItemPerfab.GetComponent<RectTransform>();
tempTr.sizeDelta = new Vector2(width + 40, 40);
tempText.text = strTemp;
//UGUI 可以不寫程式碼的....使用ContentSizeFitter,HorizontalLayoutGroup
}
相關文章
- 關於UIImageView的顯示問題——居中顯示或者UIView
- CSS實現限制顯示的字數,超出顯示"..."CSS
- 配置CKEditor顯示的圖示及配置
- unity 分數的顯示Unity
- 標籤的顯示模式模式
- jbuilder x 的中文顯示UI
- java桌面顯示出錯,顯示佔半邊,顯綠色。Java
- Mac顯示/不顯示隱藏檔案教程!Mac
- oracle縱向顯示變為橫向顯示Oracle
- 這個顯示器總算能完整顯示我的Java類了Java
- 電腦顯示器黑屏 顯示器不亮的解決辦法
- TOAD和PLSQL 預設日期顯示、rowid顯示、TNSNAME的修改SQL
- [20160325]bbed 中文字元顯示的顯示問題字元
- css使文字顯示兩行後顯示省略號CSS
- 華為遊戲浮標不顯示或顯示異常遊戲
- Geoserver + MySQL實現圖層顯示和文字顯示ServerMySql
- css 一行顯示超出部分顯示省略號CSS
- Activity背景顯示app圖示APP
- uboot顯示logo的方式bootGo
- Oracle的SCN顯示問題Oracle
- SAP Fiori image的顯示原理
- view的隱藏和顯示View
- UILabel居中顯示的方法UI
- Qt中顯示OpenCV的IplImageQTOpenCV
- 友好的顯示小數ORACLEOracle
- opencv顯示中文OpenCV
- MySQL顯示中文MySql
- 顯示地圖地圖
- Html 顯示pdfHTML
- 如何顯示&字元字元
- 顯示TCODE
- easyui datetimebox 如何只顯示 月份,不顯示具體的資料UI
- 新建模型的時候,是否顯示欄位中的條件顯示如何使用?模型
- android 顯示當前時間(EEEE)顯示星期幾Android
- iOS設定tabbar不顯示文字,只顯示圖片iOStabBar
- Win10系統右鍵選單隻顯示圖示不顯示文字的解決方法Win10
- 在工作列上顯示圖示 (轉)
- FPGA影像採集與顯示專案(一)帶LOGO的VGA顯示模組FPGAGo