NGUI中UILabel用省略号替换超出显示区域的内容

开发过程中,策划/美术要求框内文字保持原有尺寸大小,如果文字放不下,则用省略号(...)代替剩余文字,代码如下:

private UILabel _labPlayerName;private void SetNickName()
{
        string  nickName = "这个名字有点长有点长有点长";
        string strOut = string.Empty;
        bool bWarp = _labPlayerName.Wrap(nickName, out strOut, _labPlayerName.height);
        while (!bWarp)
        {
            strOut = nickName.Substring(0, nickName.Length - 1);
            nickName = strOut;
            strOut += "...";
            bWarp = _labPlayerName.Wrap(strOut, out strOut, _labPlayerName.height);
        }
        _labPlayerName.text = strOut;
}
时间: 2024-10-16 10:45:39

NGUI中UILabel用省略号替换超出显示区域的内容的相关文章

NGUI中UILabel使用url标签的一个bug

在NGUI里,UILabel控件可以支持一些简单功能的标签,使文本显示更丰富及实现类似超链接的功能.但是在使用的时候发现了NGUI3.5.9版本里存在着一个bug.不过还好修复这个bug也很简单. 在UILabel中支持[url=link]text[/url]的方式来定义类超链接的文本.bug就出现在同一个UILabel里使用两个及以上这种标签时,最终显示的label内容就会全错掉.   text内容:[url=a]a[/url][url= 当再输入任一字符后,label的内容就全消失了. bu

Unity NGUI 中特效(粒子)的显示

NGUI添加粒子特效时,被UI遮挡 因为粒子系统的渲染顺序列默认为3000,而NGUI的渲染顺序默认也是从3000开始,当有嵌套的panel时或者Depth更高的panel时,GUI的渲染顺序会高于3000, 解决办法是: 1.修改Ngui中的UIPanel脚本中的默认的RenderQueue, 调整到3000以下,这样就不会遮挡住粒子特效了,当有的窗口需要显示在特效上面时,在检视面板中把该窗口的Renderer Q选项调整为Start At,值为3000以上,就可以解决 2.使用另外一个摄像机

css 文档流中块级非替换元素水平区域的计算规则(1)

最近在读<Basic Visual Formatting in CSS>,结合以前看的<css权威指南>和css标准.今天就做个笔记. 以前在遇到一些宽度不明确指明的一些布局的时候,虽然凭感觉能猜出个大概,但是总是有点不是很靠谱.直到最近看到这一本书,觉得总觉得挺好的. 首先要知道,元素除了通过display来指定block.inline.inline-block这一些属性之外,还有一种能在的特性--替换还是非替换. 替换元素:像img.video.canvas等稳定种指定的内容只

jquery字数限制超出显示...,原有内容在title中显示

为标签添加class = sliceFont:添加data-num属性为要显示的字数,截取后会在title中显示原有字符串: $('.sliceFont').each(function(index, el) { var num = $(this).attr('data-num'); var text = $(this).text(); var len = text.length; $(this).attr('title',$(this).text()); if(len > num){ $(thi

vue.js 1中父组件跳到子组件中并传参让子组件显示不同的内容

父组件中的点击跳转: <ul class="insurance-entry clearfloat"> <li v-link="{name:'productlist',params:{id:1}}">1</li> <li v-link="{name:'productlist',params:{id:2}}">2</li> <li v-link="{name:'product

Listview滑动超出显示区域时getChildAt(arg2)异常错误

转载自:ListView中getChildAt(index)的使用注意事项 1.原理 在很多时候ListView列表数据不需要全部刷新,只需刷新有数据变化的那一条,这时可以用getChildAt(index)获取某个指定position的view,并对该view进行刷新. 注意:在ListView中,使用getChildAt(index)的取值,只能是当前可见区域(列表可滚动)的子项! 即取值范围在 >= ListView.getFirstVisiblePosition() && 

C#Regex中replace方法的替换自定义小数点后的内容

$1应该就是引用了这个组,不用这个会匹配不到 /// <summary> /// 截取 /// </summary> /// <param name="n">输入截取数字如-0.3412</param> /// <param name="t">截取位数</param> /// <returns></returns> private double Floor(double

CCNode作为容器实现显示区域剪裁

一直把ccnode当做ui元素的容器使用,比如一段带下划线的文字,我会在一个ccnode中加入一个label和一个sprite,然后作为一个整体传出. 在主界面聊天的时候遇到一个问题,一段聊天信息需要由多个不同的元素拼凑而成,而主界面只有能显示一条不超过16个字的文字信息.一开始的想法是写一个算法,从第一个元素开始遍历到最后一个元素, 累加字数,直到16个字为止,但是这个涉及到在16个字的时候元素切割和重新创建末尾元素的问题,想来想去觉得甚是复杂,再加上工期紧,觉得需要另寻通途.既然要求的是16

Lua语言实现:截取给定字符串的部分长度,超出部分用省略号“...”替换

在项目开发过程当中,尤其是游戏开发,当使用lua脚本语言编写客户端程序时,需要给玩家角色名长度做适配.如果玩家角色名的长度很长,超过了给定框,那么就会遮住游戏界面其他地方的图片,效果很难看,这样给玩家的体验就不好.为了给用户一个好的体验,往往策划会提出要求,比如角色名最大长度为18位,但是12位就已经超出框框,那么可以只显示9位,剩余部分用省略号替换,这样整个角色名就在给定框当中,给玩家的体验效果就更好. 下面是我在游戏开发遇到的情况. 没有修改前的情形: 策划往往会要求客户端把角色名缩短,但又