int GetIndexOnPos1(ref float pos, bool forceUpdate)
{
if (_realNumItems < _curLineItemCount)
{
pos = 0;
return 0;
}
if (numChildren > 0 && !forceUpdate)
{
float pos2 = this.GetChildAt(0).y;
if (pos2 > pos)
{
for (int i = _firstIndex - _curLineItemCount; i >= 0; i -= _curLineItemCount)
{
pos2 -= (_virtualItems[i].size.y + _lineGap);
if (pos2 <= pos)
{
pos = pos2;
return i;
}
}
pos = 0;
return 0;
}
else
{
for (int i = _firstIndex; i < _realNumItems; i += _curLineItemCount)
{
float pos3 = pos2 + _virtualItems[i].size.y + _lineGap;
if (pos3 > pos)
{
pos = pos2;
return i;
}
pos2 = pos3;
}
pos = pos2;
return _realNumItems - _curLineItemCount;
}
}
else
{
float pos2 = 0;
for (int i = 0; i < _realNumItems; i += _curLineItemCount)
{
float pos3 = pos2 + _virtualItems[i].size.y + _lineGap;
if (pos3 > pos)
{
pos = pos2;
return i;
}
pos2 = pos3;
}
pos = pos2;
return _realNumItems - _curLineItemCount;
}
}