NSlider
NSlider组件用于在UI中展示一个可编辑的滑动条。NSlider接口如下表所示:
| 接口名称 | 返回值 | 接口含义 |
|---|---|---|
| SetBackgroundTexture(const std::string& file) | void | 设置背景图片 |
| SetBackgroundTexture(NTexturePtr texture) | void | 设置背景图片 |
| GetBackgroundTexture() | NTexturePtr | 获取背景图片 |
| SetFillTexture(const std::string& file) | void | 设置填充图片 |
| SetFillTexture(NTexturePtr texture) | void | 设置填充图片 |
| GetFillTexture() | NTexturePtr | 获取填充图片 |
| SetHandleTexture(const std::string& file, ESelectionState state = ESelectionState::ES_Normal) | void | 设置控制柄图片 |
| SetHandleTexture(NTexturePtr texture, ESelectionState state = ESelectionState::ES_Normal) | void | 设置控制柄图片 |
| GetHandleTexture(ESelectionState state) | NTexturePtr | 获取控制柄不同状态下的图片 |
| SetValue(float percent) | void | 设置滑块值 |
| GetValue() | float | 获取滑块值 |
| SetHandleVisible(bool visible) | void | 设置控制柄是否可见 |
| GetHandleVisible | bool | 获取控制柄是否可见 |
| SetHandleSize(const Vector2& size) | void | 设置控制柄大小 |
| GetHandleSize() | Vector2 | 获取控制柄大小 |
| SetSliderType(ESliderDirection barType) | void | 设置拖动控制柄时滑动条值增加的方向 |
| GetSliderType | ESliderDirection | 获取拖动控制柄时滑动条值增加的方向 |
| SetOnValueChangedCallback(OnValueChange& callback) | void | 设置滑动条值变化时回调函数 |
| SetAlpha(float alpha) | void | 设置控件透明度 |
| GetAlpha() | float | 获取控件透明度 |
设置显示效果
void SetBackgroundTexture(const std::string& file);
void SetBackgroundTexture(NTexturePtr texture);
NTexturePtr GetBackgroundTexture();
void SetFillTexture(const std::string& file);
void SetFillTexture(NTexturePtr texture);
NTexturePtr GetFillTexture();
void SetHandleTexture(const std::string& file, ESelectionState state = ESelectionState::ES_Normal);
void SetHandleTexture(NTexturePtr texture, ESelectionState state = ESelectionState::ES_Normal);
NTexturePtr GetHandleTexture();
void SetHandleVisible(bool visible);
bool GetHandleVisible();
void SetHandleSize(const Vector2& size); const Vector2& GetHandleSize();
void SetSliderType(ESliderDirection barType);
ESliderDirection GetSliderType();
void SetAlpha(float alpha);
float GetAlpha();
参数:
| 参数 | 说明 |
|---|---|
| fileName | 图片资源路径 |
| texture | 图片纹理对象 |
| state | ESelectionState表示控制柄状态,ES_Normal表示默认状态,ES_Highlighted表示高亮状态(选中状态),ES_Pressed表示按下状态,ES_Disabled表示不可用状态。 |
| visible | 控制柄是否可见 |
| Size | 控制柄大小 |
| barType | ED_LeftToRight表示从左到右为0~1;ED_RightToLeft表示从右到左;ED_BottomToTop表示从下到上并改变为垂直滚动条;ED_TopToBottom表示从上到下并改变为垂直滚动条 |
| alpha | 透明度 |
描述:
通过上述接口可以实现改变滚动条组控件的显示效果。
代码示例:
void NTest::Start()
{
auto actor= GetNActor();
auto comp = actor->GetComponent<NSlider>();
comp ->SetHandleTexture("Assets/Textures/Skybox.png",ESelectionState::ES_Pressed);
}设置和获取滚动条数值
void SetValue(float percent); float GetValue();
参数:
percent:设置滑动条数值
描述:
通过上述接口可以设置以及获取滑动条数值。
代码示例:
void NTest::Start()
{
auto actor= GetNActor();
auto comp = actor->GetComponent<NSlider>();
comp ->SetValue(0.5f);
}设置滑动条数值改变回调
void SetOnValueChangedCallback(OnValueChange& callback);
参数:
callback:回调函数函数指针
描述:
通过上述接口可以设置滑块数值改变时回调函数。
代码示例:
void NTest::Start()
{
auto actor = GetNActor();
auto comp = actor->GetComponent<NSlider>();
OnValueChange call = BIND_MEMBER_FUNCTION(&NTest::OnValueChanged, this);
comp->SetOnValueChangedCallback(call);
}
void NTest::OnValueChanged(float value)
{
LogE(NS_LOG_ENGINE, "NSlider value is Changed:%f", value);
}
