Skip to content

Latest commit

 

History

History
118 lines (76 loc) · 3.34 KB

align.md

File metadata and controls

118 lines (76 loc) · 3.34 KB

Align

Align函数帮助你迅速地把一个元素相对于它的父级摆放好位置。使用它们把一个图层放置在它的父级的上下左右或中间。它可以用在属性、状态或者动画中。

    # Create a layer an position it in the center 
    layerA = new Layer
        x: Align.center
        y: Align.center
     
    # Create a state in the bottom right corner 
    layerA.states.add
        a:
            x: Align.right
            y: Align.bottom
        b:
            x: Align.left
            y: Align.top

    layerA.onTap -> layerA.states.next()

当你需要某个元素的坐标值的时候,Align函数可以动态地计算出它的坐标值。当你在某个状态把一个元素放在右下角,Align函数也可以计算,除非你在转换状态时改变了窗口大小。

你也可以选择性地使用偏移量。

	layerA = new Layer
	    x: Align.center(-100) # 100 pixels left from the center 
	    y: Align.top(100) # 100 pixels from the top 

需要注意的是left和right只对x值起作用,top和bottom只对y值起作用,center对他们都起作用。在直接编程时,对比于layer.center() Align是一个更好的选择,因为它可以自适应。

align.bottom(offset)

把图层置于它的父级的底部。如果没有父级,就放在设备屏幕底部。Bottom只对图层的y属性起作用,它可以作用在属性、状态及动画中。

参数

  • offset — 数字(可选的)
    layerA = new Layer
        y: Align.bottom
     
    layerB = new Layer
        y: Align.bottom(-100) # 100 pixels from the bottom 

align.center(offset)

该方法可以把图层放在它的父图层的正中间。如果没有父图层,就默认放在屏幕正中间。在使用状态和动画的时候,它也可以作为一个属性值去使用。

参数

  • offset — 数字(可选的).
    layerA = new Layer
        x: Align.center
        y: Align.center
     
    layerB = new Layer
        x: Align.center(+100)
        y: Align.center(-100)

align.left(offset)

把图层置于它的父图层的左侧,如果没有父图层,就默认放在屏幕左侧。这个方法只对x属性起作用。它也可以作为状态或者动画中的一个属性值。

参数

  • offset — 数字(可选的).

    layerA = new Layer x: Align.left

    layerB = new Layer x: Align.left(100) # 100 pixels from the left

align.right(offset)

把图层置于它的父图层的右侧,如果没有父图层,就默认放在屏幕右侧。这个方法只对x属性起作用。它也可以作为状态或者动画中的一个属性值。

参数

  • offset — 数字(可选的).

    layerA = new Layer x: Align.right

    layerB = new Layer x: Align.right(-100) # 100 pixels from the right

align.top(offset)

把图层置于它的父图层的顶部,如果没有父图层,就默认放在屏幕顶部。这个方法只对y属性起作用。它也可以作为状态或者动画中的一个属性值。

参数

  • offset — 数字(可选的).

    layerA = new Layer y: Align.top

    layerB = new Layer y: Align.top(100) # 100 pixels from the top