Skip to content

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设置控制柄是否可见
GetHandleVisiblebool获取控制柄是否可见
SetHandleSize(const Vector2& size)void设置控制柄大小
GetHandleSize()Vector2获取控制柄大小
SetSliderType(ESliderDirection barType)void设置拖动控制柄时滑动条值增加的方向
GetSliderTypeESliderDirection获取拖动控制柄时滑动条值增加的方向
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图片纹理对象
stateESelectionState表示控制柄状态,ES_Normal表示默认状态,ES_Highlighted表示高亮状态(选中状态),ES_Pressed表示按下状态,ES_Disabled表示不可用状态。
visible控制柄是否可见
Size控制柄大小
barTypeED_LeftToRight表示从左到右为0~1;ED_RightToLeft表示从右到左;ED_BottomToTop表示从下到上并改变为垂直滚动条;ED_TopToBottom表示从上到下并改变为垂直滚动条
alpha透明度

描述:
通过上述接口可以实现改变滚动条组控件的显示效果。

代码示例:

cpp
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:设置滑动条数值

描述:
通过上述接口可以设置以及获取滑动条数值。

代码示例:

cpp
void NTest::Start()
{
    auto actor= GetNActor();
    auto comp = actor->GetComponent<NSlider>();
    comp ->SetValue(0.5f); 
}

设置滑动条数值改变回调

void SetOnValueChangedCallback(OnValueChange& callback);

参数:
callback:回调函数函数指针

描述:
通过上述接口可以设置滑块数值改变时回调函数。

代码示例:

cpp
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);
}