价格文本对齐

打印 上一主题 下一主题

主题 886|帖子 886|积分 2658

·记录一下工作里常碰到的一些简单问题:
需求是一个购买按钮上同时展示原价和现价:

1.原价现价文本格式差别
2.原价切需要加打折红线,不方便用富文本一个文本处理。
3.需要对两条文本适配父节点的宽度,不能超出按钮
以下是实现代码:
  1. function CenterTwoTexts(text1, text2)
  2.     text1.fontSize = 36
  3.     text2.fontSize = 42
  4.     -- 获取两个Text控件的RectTransform
  5.     local rectTransform1 = text1.transform:GetComponent(typeof(RectTransform))
  6.     local rectTransform2 = text2.transform:GetComponent(typeof(RectTransform))
  7.     -- 获取父节点的RectTransform
  8.     local parentRectTransform = rectTransform1.parent:GetComponent(typeof(RectTransform))
  9.     -- 设置Text perfect size
  10.     rectTransform1.sizeDelta = Vector2(text1.preferredWidth, text1.preferredHeight)
  11.     rectTransform2.sizeDelta = Vector2(text2.preferredWidth, text2.preferredHeight)
  12.     -- 计算两个Text控件的总宽度
  13.     local totalWidth = rectTransform1.sizeDelta.x + rectTransform2.sizeDelta.x
  14.     local parentWidth = parentRectTransform.sizeDelta.x - 30
  15.     -- 计算两个Text控件的总宽度与父节点的宽度之差
  16.     local scale = 1
  17.     if parentWidth < totalWidth then
  18.         scale = parentWidth / totalWidth
  19.         rectTransform1.localScale = Vector3(scale, scale, scale)
  20.         rectTransform2.localScale = Vector3(scale, scale, scale)
  21.     end
  22.     logYellow("scale = " .. scale)
  23.     logCyan(rectTransform1.sizeDelta.x, rectTransform2.sizeDelta.x)--, parentRectTransform.sizeDelta.x, totalWidth, scale
  24.     -- 计算每个Text控件应该偏移的距离,以使它们居中
  25.     local offset = rectTransform2.sizeDelta.x / 2 - rectTransform1.sizeDelta.x / 2
  26.     -- 设置第一个Text控件的位置
  27.     rectTransform1.anchoredPosition = Vector2(-offset - 3, rectTransform1.anchoredPosition.y)
  28.     -- 设置第二个Text控件的位置
  29.     rectTransform2.anchoredPosition = Vector2(-offset + 3, rectTransform2.anchoredPosition.y)
  30. end
复制代码
思路是将左边文本锚点设置到最右(1,0.5),右边锚点设置到最左(0,0.5)此时只需要对齐文本的坐标即可。先按两条文本长度算出来整体偏移,然后根据父节点的宽度做缩放。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

伤心客

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表