Cocos2d-x UI使用问题总结

基础

1. 更新位置和大小信息

当使用widgetFromBinaryFile或者widgetFromJsonFile创建UI后,某些百分比控件的位置和尺寸并不是正确的,可以使用updateSizeAndPosition来更新。

2. 控件尺寸百分比和位置百分比

当在一个控件的尺寸或者位置指定为百分比类型时,那么再对它使用setPositionsetContentSize是没有用。当发现一个控件进行位置和大小设置后没有变化,就应该先去查一查是不是设置为百分比类型了。

控件

1. 容器层的使用

容器层的基类是Layout,以此为基础派生的类有: ScrollView, ListView, PageView

ScrollView继承自LayoutListView继承自ScrollViewPageView继承自Layout。它们的内部又包含了一个Layout对象来封装子对象。

ScrollView内部的Layout对象_innerContainer的Size要比ScrollView本身大才能够进行拖动操作。

当我们拖动ScrollView内部的子对象移动时,其实移动的是_innerContainer对象。

ScrollView某个item上移动一小段距离后,引擎会调用setHighlighted(false),取消控件的聚焦效果。

对于ListView,使用doLayout来更新_innerContainer对象的大小。

2. 按钮

  • 设置为按下状态图片

    button:setHighlighted(true)
  • 设置为禁用状态图片

    button:setBright(false)