import { Component } from "./Component"; /** * 控制布局 * 当添加了控制布局组件后,原本的position、size和scale可能会被自动管控手动设置将不会生效 * ```ts * const node = GameObject.instantiate(Group, parent, { * width: 100, * height: 100, * anchorX: 0.5, * anchorY: 0.5, * }); * node.addComponent(Layout, { centerX: 0, centerY: 0 }); * ``` */ export declare class Layout extends Component { private preferredWidth; private preferredHeight; private _markResize; private _active; private _applyingLayout; private resizeLater; private handleAdded; private handleRemoved; private handleParentResize; private handleSelfResize; private _left?; /** * 相对左边的距离 */ get left(): number | undefined; set left(val: number | undefined); private _top?; /** * 相对顶部的距离 */ get top(): number | undefined; set top(val: number | undefined); private _right?; /** * 相对右边的距离 */ get right(): number | undefined; set right(val: number | undefined); private _bottom?; /** * 相对底部的距离 */ get bottom(): number | undefined; set bottom(val: number | undefined); private _centerX?; /** * 水平居中偏移。 * left 和 right 将失效 * 注意:如果要让节点真正实现水平居中,需要设置 `anchorX` * ```ts * const node = GameObject.instantiate(Group, parent, { anchorX: 0.5 }); * node.addComponent(Layout, { centerX: 0 }); * ``` */ get centerX(): number | undefined; set centerX(val: number | undefined); /** * @deprecated 使用 `centerX`。旧命名保留用于兼容。 */ get vertical(): number | undefined; set vertical(val: number | undefined); private _centerY?; /** * 垂直居中偏移。 * top 和 bottom 将失效 * 注意:如果要让节点真正实现垂直居中,需要设置 `anchorY` * ```ts * const node = GameObject.instantiate(Group, parent, { anchorY: 0.5 }); * node.addComponent(Layout, { centerY: 0 }); * ``` */ get centerY(): number | undefined; set centerY(val: number | undefined); /** * @deprecated 使用 `centerY`。旧命名保留用于兼容。 */ get horizontal(): number | undefined; set horizontal(val: number | undefined); private _minWidth; get minWidth(): number; set minWidth(val: number); private _minHeight; get minHeight(): number; set minHeight(val: number); awake(): void; private markResize; /** * 当挂载节点尺寸发生变化,且需要重新动态计算时调用 * 将保存当前组件的位置和大小状态 */ saveNewSize(): void; private savePreferredSize; private clampWidth; private clampHeight; /** * 重新计算布局/矫正布局 * ```ts * const node = new Transform(); * const layout = node.addComponent(Layout); * node.anchor.set(0.5, 0.5); * layout.resize(); * ``` */ /** * 矫正布局 */ resize(): void; onDestroy(): void; }