垂直对齐动态代码

时间:2015-01-12 15:19:13

标签: vertical-alignment livecode

我想在实时代码中垂直对齐标签文本,例如对齐顶部,中间或底部。

   ----------------------------------
   |          top text               |
   |                                 |
   |                                 |
    ---------------------------------

    ---------------------------------
   |                                 |
   |          middle text            |
   |                                 |
    ---------------------------------

    ---------------------------------
   |                                 |
   |                                 |
   |          bottom text            |
    ---------------------------------

有没有办法做到这一点?如果不是,是否有其他方法可以做到这一点?

2 个答案:

答案 0 :(得分:1)

没有内置的方法可以自动定位标签文字。但是,除非您需要字段的文本格式属性,否则使用按钮作为标签可能会更好地满足您的需求,因为它可以自动垂直居中文本。

以下内容应该可以帮助您完成大部分工作。您可以直接将脚本粘贴到按钮中并发送" updateMyTextAlignment< value>"到值为"顶部","中间"的按钮或"底部"。但假设您的堆栈中有多个自定义标签,则更好的选择是将以下内容作为行为应用于所有标签按钮。

command updateMyTextAlignment pValue
   put effective textSize of me into TS
   put effective textHeight of me into TH
   switch pValue
      case "top"
         set topMargin of me to -(height of me) + TS + TH 
      break
      case "middle"
         set topMargin of me to 0 -- may need to adjust this amount
      break
      case "bottom"
         set topMargin of me to height of me - TS - TH
   end switch
end updateMyTextAlignment

答案 1 :(得分:0)

不幸的是,属性窗口中没有选项,但您可以使用像

这样的简单脚本来执行此操作
 set the topMargin of field theField to (round(((the height of field theField - the formattedHeight of field theField)/2)) + the topMargin of field theField)

上边距示例

更新: 最高保证金的最简单示例:

set the topMargin of field theField to 0 

然后将0调整为您想要的顶部值,例如你的字体大小左右。

对于中间我会使用像

这样的东西
set the topMargin of field theField to (the height of field theField / 2)

也许可以通过考虑字体大小来调整它。