今天组长让我写一个界面,其中用到了下拉条,我的印象还停留在以前的NGUI有现成的组件,但是uGUI没有的那阶段,组长跟我说uGUI现在也有了,研究了一下,发现real方便哦,今天就来简单说一下用法吧。
Dropdow
用法也就是点开会有一个下拉列表,选中的可以显示。
那么第一个问题来了
- 就是怎么在下拉列表里填上我们所需要的选项,显示我们需要的个数
首先呢,遇到一个没有用过的组件不要紧张,可以先看看面板上都有些什么属性,一般来说Inspect界面上的都是可以获取的,有些事可以改的有些的不能改的,如上图,在OptionA,OptionB,OptionC上面有一个词 Options,那我们大概就知道要获取或者更改选项的个数和内容应该是跟这个Options有关了
来来来先呈上代码
public class UIDropdownItem : MonoBehaviour {
Dropdown dropdownItem;
List<string> tempNames;
void Awake()
{
dropdownItem = GetComponent<Dropdown>();
tempNames = new List<string>();
}
void Start()
{
AddNames();
UpdateDropdownView(tempNames);
}
/// <summary>
/// 刷数据
/// </summary>
/// <param name="showNames"></param>
private void UpdateDropdownView(List<string> showNames)
{
dropdownItem.options.Clear();
Dropdown.OptionData tempData;
for (int i = 0; i < showNames.Count; i++)
{
tempData = new Dropdown.OptionData();
tempData.text = showNames[i];
dropdownItem.options.Add(tempData);
}
dropdownItem.captionText.text = showNames[0];
}
/// <summary>
/// 模拟数据
/// </summary>
private void AddNames()
{
string s1 = "小白";
string s2 = "小胖";
string s3 = "桃桃";
string s4 = "南瓜";
string s5 = "宝哥哥";
tempNames.Add(s1);
tempNames.Add(s2);
tempNames.Add(s3);
tempNames.Add(s4);
tempNames.Add(s5);
}
}
核心的一句话就是在刷数据那个方法里,先定义一个Dropdown.OptionData类型的,然后往里面填数据,最后别忘了最后一句话,把显示的值换成选项里的第一个也就是ShowNames[0],盆友你可以试着写一写看一看哦
来先看一下我的这个运行的结果吧
呦呦呦
聪明的你也发现了我在这里只更改了text的值,想下其他的值该怎么获取或者更改呢,像Image啊什么的
Dropdown的底层
这是Unity里面关于Dropdown的底层,我们能看出来text还有image都是可以get,set的,还有存储OptionData的也是,快去试一下吧~
时间: 2024-10-12 18:21:28