当前位置: 首页 > news >正文

烟台产品网站建设百度关键词指数排行

烟台产品网站建设,百度关键词指数排行,微信房地产网站建设,淘宝网站建设预算表常规限定文本长度 ( 通过 UntiyEngine.UI.Inputfiled 附带的长度限定 ) 痛点1 无法对中文,数字,英文进行识别,同样数量的汉字和同样数量的英文像素长度是不一样的,当我们限定固定长度后,在界面上的排版不够美观 痛点2…

常规限定文本长度 ( 通过 UntiyEngine.UI.Inputfiled 附带的长度限定 )

在这里插入图片描述

痛点1

无法对中文,数字,英文进行识别,同样数量的汉字和同样数量的英文像素长度是不一样的,当我们限定固定长度后,在界面上的排版不够美观

在这里插入图片描述
在这里插入图片描述

痛点2

当我们需要对用户的名称加限制长度的时候, 不同的文本( 汉字,字母,数字,符号 ) 外观上长度不一,常规的裁切不够优雅,文本看上去也是突然的停顿了,比如中间的 “巴拉巴拉小魔仙”, “仙” 直接裁切了,处理方式太过僵硬

当然,我们可以用自动适配来缩小字体来解决以上问题,但整体看上去又不够整齐,很容易出现大小层次不齐,整体看上去会很丑
在这里插入图片描述

如何解决呢?

第一个痛点,我们可以通过像素的方式,以单元格的方式去计算文本实际长度, 而非固定长度限制

如: 你好,世界! 占用的是10个单元格
而:hello,world 占用的是10个单元格

如上,虽然字符串长度不一样,但是实际像素却是一样的 ( 这里我们做一个设定, 不足一个字母长度的当成一个字母长度, 如 !, ., _,-, 这些都是字母,但长度不一,我们按最大长度来处理,也就是一个英文字母 A的长度来设定 )

如何去判断字符串中有多少个汉字,多少个特殊字符呢? 我们需要写一个正则表达式来筛选,这里我封装了一个类,来专门处理

这里,我额外处理,日文,韩文,这些长度都是等同于汉字的处理, 具体长度计算 我们只需要调用 GetTextSize 方法
大家也可以自行扩展,根据实际项目中的字体去更改大小比例,有的项目中 英文和汉字的比例是 1:1.5, 我本人的项目字体目前是1:2 所以
文本中汉字的实际大小 = 字符串包含汉字的数量x2

using System.Text.RegularExpressions;public class LanguageCounter
{// 统计字符串中的中文字符个数public static int CountChinese( string input ){return Regex.Matches( input, @"[\u4e00-\u9fff]" ).Count;}// 统计字符串中的英文字符个数public static int CountEnglish( string input ){return Regex.Matches( input, @"[a-zA-Z]" ).Count;}// 统计字符串中的符号个数(包括标点、特殊符号等)public static int CountSymbols( string input ){return Regex.Matches( input, @"[^\u4e00-\u9fff\w\s]" ).Count;}// 统计字符串中的数字个数public static int CountNumbers( string input ){return Regex.Matches( input, @"\d" ).Count;}// 统计字符串中的韩文字符个数public static int CountKorean( string input ){return Regex.Matches( input, @"[\uac00-\ud7af]" ).Count;}// 统计字符串中的日文字符个数public static int CountJapanese( string input ){return Regex.Matches( input, @"[\u3040-\u30ff]" ).Count;}// 空格数量public static int CountSpace( string input ){return Regex.Matches( input, @"\s" ).Count;}/// <summary>/// 获取字符串中 单元大小/// /// 字符/字母/数字 按一个单元算/// 中文汉字,韩文,繁体,日文,片甲 按两个单元算/// /// </summary>/// <param name="text"></param>/// <returns></returns>public static int GetTextSize( string text ){int chineseSize = LanguageCounter.CountChinese( text ) * 2;int japaneseSize = LanguageCounter.CountJapanese( text ) * 2;int koreaneseSize = LanguageCounter.CountKorean( text ) * 2;int englisheseSize = LanguageCounter.CountEnglish( text );int symbolsSize = LanguageCounter.CountSymbols( text );int numberSize = LanguageCounter.CountNumbers( text );int spaceSize = LanguageCounter.CountSpace( text );return spaceSize + chineseSize + englisheseSize + symbolsSize + numberSize + japaneseSize + koreaneseSize;}}

如何解决第二个痛点呢?

我们只需要限定长度,这个长度是实际单元像素长度,而非固定字符串长度去处理就行,尾号加上 就可以完美解决

 public void SetName( string newName ){if ( LanguageCounter.GetTextSize( newName ) > 12 ){//这里,因为你永远也不知道尾部的字符是  汉字,韩语,  特殊符号, 还是字母和数字,所以我们只需要遍历去裁切计算长度就可以了//至于性能,这里不涉及UI,仅仅对数据进行遍历,开销可以忽略不记while ( LanguageCounter.GetTextSize( newName ) > 9 ){newName = newName.Remove( newName.Length - 1 );}newName = newName + "...";}//在最后我们将筛好的字符串赋值给 UI 就大功告成了nameText.text = newName;}

最后,感谢大家阅读,有什么问题,可以通过博客私聊我,或者你有更好的方法也可以在博客下留言,感谢!

http://www.jinmujx.cn/news/110903.html

相关文章:

  • 全国网站建设公司网站运营策划书
  • 做门户网站用什么程序北京网络seo
  • 儿童可以做的游戏视频网站seo网站推广收费
  • 网络营销推广方法公司推荐关键词排名优化
  • 低代码开发平台开源在线优化工具
  • 网站模板 阿里网站推广是什么意思
  • 机械行业做网站网络口碑营销
  • wordpress 2.9.2汕头seo快速排名
  • 连云港网站建设制作网站查询域名ip
  • 微网站怎么做搜索引擎费用
  • dw个人网站制作模板福州短视频seo平台
  • 以域名做网站关键词网站推广联盟
  • 网站开发费用是无形资产sem是做什么的
  • 广州网站设计找谁四川seo推广公司
  • 网站优化方法页面晚上国网app
  • app主题WordPress青岛网站seo分析
  • 网站建设本科毕业论文b2b免费发布平台
  • 商城系统 wordpress嵌入网络优化需要哪些知识
  • 网站建设全程揭秘 光盘文件百度推广页面投放
  • 网站开发英文术语推广资源整合平台
  • 现代化专业群建设网站高端网站优化公司
  • 创意产品设计网seo超级外链发布
  • 怎么在网站添加链接如何开发网站
  • 做异性的视频网站有哪些网络营销策划案例
  • 如何建立新的企业网站站长之家
  • 深圳网站建站的公司最新注册域名查询
  • dedecms 网站还原武汉seo优化排名公司
  • 宠物网站建站目标百度超级链
  • 中国网站开发seo技术助理
  • 一个网站建设花了10万元天津seo招聘