NScrollBar
NScrollBar组件用于在UI中展示一个可编辑的滚动条。NScrollBar接口如下表所示:
| 接口名称 | 返回值 | 接口含义 |
|---|---|---|
| SetBackgroundTexture(const std::string& file) | void | 设置背景图片 |
| SetBackgroundTexture(NTexturePtr texture) | void | 设置背景图片 |
| GetBackgroundTexture() | 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 | 获取控制柄图片 |
| SetHandleColor(Color32 color, ESelectionState state = ESelectionState::ES_Normal) | void | 设置控制柄颜色 |
| GetHandleColor(ESelectionState state) | Color32 | 获取控制柄颜色 |
| SetHandleVisible(bool visible) | void | 设置控制柄是否可见 |
| GetHandleVisible() | bool | 获取控制柄是否可见 |
| SetHandleSize(float percent) | void | 设置控制柄大小 |
| GetHandleSize() | float | 获取控制柄大小 |
| SetScrollBarType(ESliderDirection barType) | void | 设置滚动条类型 |
| GetScrollBarType() | ESliderDirection | 获取滚动条类型 |
| SetTransitionStyle(ETransitionStyle style) | void | 确定控件以何种方式对用户操作进行可视化响应的属性。 |
| GetTransitionStyle() | ETransitionStyle | 获取过渡选项 |
| SetAlpha(float alpha) | void | 设置控件透明度 |
| GetAlpha() | float | 获取控件透明度 |
| SetInteractabled(bool interactabled) | void | 设置是否可交互 |
| IsInteractabled() | bool | 获取是否可交互 |
| SetValue(float percent) | void | 设置滚动条的值 |
| GetValue() | float | 获取滚动条的值 |
| SetOnValueChangedCallback(OnValueChange& callback) | void | 设置滚动条数值变化回调函数 |
设置和获取样式
接口: void SetTransitionStyle(ETransitionStyle style); ETransitionStyle GetTransitionStyle();
参数: style:控制柄显示类型,分为纹理,纯色
描述: 设置控制柄以何种方式对用户操作进行可视化响应的属性,可以是纹理,也可以是纯色。
代码示例:
void NTest::Start()
{
auto actor= GetNActor();
auto comp = actor->GetComponent<NScrollBar>();
//设置采用纯色方式.
comp ->SetTransitionStyle(ETransitionStyle::ETS_COLOR);
}设置显示效果
接口: void SetBackgroundTexture(const std::string& fileName); void SetBackgroundTexture(NTexturePtr texture); NTexturePtr GetBackgroundTexture(); void SetHandleTexture(const std::string& fileName, ESelectionState state = ESelectionState::ES_Normal); void SetHandleTexture(NTexturePtr texture, ESelectionState state = ESelectionState::ES_Normal); NTexturePtr GetHandleTexture(ESelectionState state); void SetHandleColor(Color32 color, ESelectionState state = ESelectionState::ES_Normal); Color32 GetHandleColor(ESelectionState state); void SetHandleVisible(bool visible); bool GetHandleVisible(); void SetHandleSize(float percent); float GetHandleSize(); void SetScrollBarType(EScrollBarDirection barType); EScrollBarDirection GetScrollBarType(); void SetAlpha(float alpha); float GetAlpha();
参数:
| 参数 | 说明 |
|---|---|
| fileName | 图片资源路径 |
| color | 颜色值 |
| state | ESelectionState表示控制柄状态,ES_Normal表示默认状态,ES_Highlighted表示高亮状态(选中状态),ES_Pressed表示按下状态,ES_Disabled表示不可用状态。 |
| visible | 控制柄是否可见 |
| percent | 控制柄占据滚动条的比例 |
| barType | ED_LeftToRight表示从左到右为0~1;ED_RightToLeft表示从右到左;ED_BottomToTop表示从下到上并改变为垂直滚动条;ED_TopToBottom表示从上到下并改变为垂直滚动条 |
| alpha | 透明度 |
描述: 通过上述接口可以实现改变滚动条组控件的显示效果。
代码示例:
void NTest::Start()
{
auto actor= GetNActor();
auto comp = actor->GetComponent<NScrollBar>();
comp ->SetTransitionStyle(ETransitionStyle::ETS_IMAGE);
comp ->SetHandleTexture("Assets/Textures/Skybox.png",ESelectionState::ES_Pressed);
comp ->SetHandleColor(Color32::Red,ESelectionState::ES_Pressed);
}设置和获取滚动条数值
接口: void SetValue(float percent); float GetValue();
参数: percent:设置滚动条数值
描述: 通过上述接口可以设置滚动条数值以及获取滚动条数值。
代码示例:
void NTest::Start()
{
auto actor = GetNActor();
auto comp = actor->GetComponent<NScrollBar>();
comp->SetValue(0.5f);
}设置滚动条数值改变回调
接口: void SetOnValueChangedCallback(OnValueChange& callback);
参数: OnValueChange:回调函数函数指针
描述: 通过上述接口可以设置滚动条数值改变时回调函数。
代码示例:
void NTest::Start()
{
auto actor = GetNActor();
auto comp = actor->GetComponent<NScrollBar>();
OnValueChange call = BIND_MEMBER_FUNCTION(&NTest::OnValueChanged, this);
comp->SetOnValueChangedCallback(call);
}
void NTest::OnValueChanged(float value)
{
LogM(NS_LOG_ENGINE, "NScrollBar value is Changed:%f", value);
}设置是否可交互
接口: void SetInteractabled(bool interactabled); bool IsInteractabled();
参数: interactabled:是否可交互
描述: 如果不可以交互,将不再接收事件,同时控件可选项对应图形显示为不可交互样式。
代码示例:
void NTest::Start()
{
auto actor = GetNActor();
auto comp = actor->GetComponent<NScrollBar>();
comp->SetInteractabled(true);
}
