主要步骤
1.根据滑动列表的布局类型确定Content的Anchors和Pivot、滑动方式为水平滑动或者垂直滑动这里我们以从上到下的垂直滑动为例。
m_ScrollRect.horizontal = arrangementType == ArrangementType.Horizontal;
m_ScrollRect.vertical = !(arrangementType == ArrangementType.Horizontal);
m_isHorizontal = m_ScrollRect.horizontal;
case ArrangementPos.Down:
{
v2 = new Vector2(0, 1);
if (m_isHorizontal)
{
v2 = new Vector2(0.5f, 0.5f);
Debug.LogError("布局错误"+ ArrangementPos.Down + "调整为Center");
}
m_ScrollViewContent.anchorMax = v2;
m_ScrollViewContent.anchorMin = v2;
m_ScrollViewContent.pivot = v2;
break;
}
2.根据需要添加的item数量和高确定Content的高。
private void SetContentSize()
{
if(m_isHorizontal)
{
Vector2 v2 = m_ScrollViewContent.rect.size;
v2.x = (m_CellSize.x + HorizontalSpace) * (Mathf.CeilToInt((float)_dataCount / rowCount));
m_ScrollViewContent.sizeDelta = v2;
}
else
{
Vector2 v2 = m_ScrollViewContent.rect.size;
v2.y = (m_CellSize.y + VerticalSpace) * (Mathf.CeilToInt((float)_dataCount / colCount));
m_ScrollViewContent.sizeDelta = v2;
}
}
3.根据ScrollRect的高即遮罩区域大小和item的高确定当前可视区域内可容纳的行数