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

广西建网站wordpress 是什么

广西建网站,wordpress 是什么,多语言网站,石家庄站分布图在一次开发过程中#xff0c;发现带有行间距的富文本计算高度#xff0c;会有不准确的情况#xff0c;富文本内容明明很长#xff0c;但是计算出的高度只有不到20像素#xff0c;导致整个cell的高度计算异常。 需求上是文字固定宽度#xff0c;最多显示3行#xff0c;超…在一次开发过程中发现带有行间距的富文本计算高度会有不准确的情况富文本内容明明很长但是计算出的高度只有不到20像素导致整个cell的高度计算异常。 需求上是文字固定宽度最多显示3行超过3行尾部打点展示。按照需求设置了尾部打点 paraStyle.lineBreakMode .byTruncatingTail 然后计算富文本的大小。 let range NSRange(location: 0, length: introduce.count) var att NSMutableAttributedString(string: introduce) let paraStyle NSMutableParagraphStyle() paraStyle.lineSpacing 4 att.addAttribute(.font, value: UIFont.systemFont(ofSize: 14), range: range) // 计算内容高度 let screenWidth UIScreen.main.bounds.size.width let maxSzie CGSizeMake(screenWidth-40, CGFLOAT_MAX)// 换行模式byClipping paraStyle.lineBreakMode .byTruncatingTail att.addAttribute(.paragraphStyle, value: paraStyle, range: range) size att.boundingRect(with: maxSzie, options: [.usesLineFragmentOrigin,.usesFontLeading], context: nil).size print(使用byTruncatingTail计算size , size)这时候算出来的size高度只有17像素真实显示到屏幕上Label的高度是58像素。导致整体cell的高度计算错误。 后来发现先将换行模式改为paraStyle.lineBreakMode .byWordWrapping 在计算高度是正确的。于是把所有的换行模式都逐个测试看看到底是什么情况。 func getTextAttributed(_ introduce: String) - NSAttributedString {let range NSRange(location: 0, length: introduce.count)var att NSMutableAttributedString(string: introduce)let paraStyle NSMutableParagraphStyle()paraStyle.lineSpacing 4att.addAttribute(.font, value: UIFont.systemFont(ofSize: 14), range: range)// 计算内容高度let screenWidth UIScreen.main.bounds.size.widthlet maxSzie CGSizeMake(screenWidth-40, CGFLOAT_MAX)// 换行模式byWordWrappingparaStyle.lineBreakMode .byWordWrappingatt.addAttribute(.paragraphStyle, value: paraStyle, range: range)var size att.boundingRect(with: maxSzie, options: [.usesLineFragmentOrigin,.usesFontLeading], context: nil).sizeprint(使用byWordWrapping计算size , size)// 换行模式byCharWrappingparaStyle.lineBreakMode .byCharWrappingatt.addAttribute(.paragraphStyle, value: paraStyle, range: range)size att.boundingRect(with: maxSzie, options: [.usesLineFragmentOrigin,.usesFontLeading], context: nil).sizeprint(使用byCharWrapping计算size , size)// 换行模式byClippingparaStyle.lineBreakMode .byClippingatt.addAttribute(.paragraphStyle, value: paraStyle, range: range)size att.boundingRect(with: maxSzie, options: [.usesLineFragmentOrigin,.usesFontLeading], context: nil).sizeprint(使用byClipping计算size , size)// 换行模式byTruncatingHeadparaStyle.lineBreakMode .byTruncatingHeadatt.addAttribute(.paragraphStyle, value: paraStyle, range: range)size att.boundingRect(with: maxSzie, options: [.usesLineFragmentOrigin,.usesFontLeading], context: nil).sizeprint(使用byTruncatingHead计算size , size)// 换行模式byClippingparaStyle.lineBreakMode .byTruncatingTailatt.addAttribute(.paragraphStyle, value: paraStyle, range: range)size att.boundingRect(with: maxSzie, options: [.usesLineFragmentOrigin,.usesFontLeading], context: nil).sizeprint(使用byTruncatingTail计算size , size)// 换行模式byClippingparaStyle.lineBreakMode .byTruncatingMiddleatt.addAttribute(.paragraphStyle, value: paraStyle, range: range)size att.boundingRect(with: maxSzie, options: [.usesLineFragmentOrigin,.usesFontLeading], context: nil).sizeprint(使用byTruncatingMiddle计算size , size)return att } 测试后发现系统的5个枚举中只有 byWordWrapping和byCharWrapping 计算准确带有截断方式的case计算都是错误的。 case byWordWrapping 0 // Wrap at word boundaries, defaultcase byCharWrapping 1 // Wrap at character boundariescase byClipping 2 // Simply clipcase byTruncatingHead 3 // Truncate at head of line: ...wxyzcase byTruncatingTail 4 // Truncate at tail of line: abcd...case byTruncatingMiddle 5 // Truncate middle of line:  ab...yz 好吧系统这个样子我们也没有办法最后采用的方式 先用 byWordWrapping 计算高度 高度计算完成在修改换行模式paraStyle.lineBreakMode .byTruncatingTail 返回富文本 func getTextAttributed(_ introduce: String) - NSAttributedString {let range NSRange(location: 0, length: introduce.count)let att NSMutableAttributedString(string: introduce)let paraStyle NSMutableParagraphStyle()paraStyle.lineSpacing 4att.addAttribute(.font, value: UIFont.systemFont(ofSize: 14), range: range)// 计算内容高度let screenWidth UIScreen.main.bounds.size.widthlet maxSzie CGSizeMake(screenWidth-40, CGFLOAT_MAX)// 换行模式byWordWrappingparaStyle.lineBreakMode .byWordWrappingatt.addAttribute(.paragraphStyle, value: paraStyle, range: range)var size att.boundingRect(with: maxSzie, options: [.usesLineFragmentOrigin,.usesFontLeading], context: nil).sizeprint(使用byWordWrapping计算size , size)// 换行模式byTruncatingTailparaStyle.lineBreakMode .byTruncatingTailatt.addAttribute(.paragraphStyle, value: paraStyle, range: range)// size att.boundingRect(with: maxSzie, options: [.usesLineFragmentOrigin,.usesFontLeading], context: nil).size// print(使用byTruncatingTail计算size , size)return att }
http://www.zqtcl.cn/news/535995/

相关文章:

  • 手机网站建设文章直播平台开发多少钱
  • 站长综合查询工具常用的网站开发语言有哪些
  • 免费网站看v片在线第一次做乌市seo网络营销流程
  • 社交网站模板下载柬埔寨网赌网站开发
  • 网站开发合同是否要交印花税杭州集团网站建设
  • 企业网站建设排名资讯一个公司做两个网站可以吗
  • 简单门户网站开发灰色行业seo大神
  • 网站开发学那种语言外贸推广网站建设
  • 公司网站建设及推广中国优秀企业网站欣赏
  • 个人代做网站建设京东类的网站需要什么流程
  • 建设一个地方门户网站厦门网站开发排名
  • 网站建设公司广告标题语网站设计主题有哪些
  • 网站推广方式主要通过做网站所需的知识技能
  • 我想在阿里巴巴网站开店_怎么做app建设网站公司
  • 西安做百度网站的制作网站公司选 择乐云seo
  • 网站优化建设河南手机模拟器
  • 网站建设运维标准深圳企业vi设计公司
  • 做网站怎么挣钱中小型企业网站建设
  • 深圳如何搭建建网站学校网站的建设与应用
  • 免费推广网站入口2023燕wordpress看图插件
  • 网站做不做301四川省住建设厅网站
  • 优化方案官网电子版一个网站做两个优化可以做吗
  • 企业网站排名提升软件智能优化上海网站制作的费用
  • 建分类信息网站西安高端模板建站
  • 南昌做网站哪家好成都三合一网站建设
  • 中国市政建设局网站做外单网站
  • 做本地网站赚钱吗wordpress 预约系统
  • 国外做名片网站优化网站最好的刷排名软件
  • 江西建设部网站网易企业邮箱密码格式
  • 网站哪个服务器好软装设计培训机构