ScrollView提供了相当好的滑动功能,滑动的多少是基于用户触摸,其没有提供方向键的控制,常常无法居中或者高亮一个物体。那如何可以居中某个物体呢?
其实NGUI提供了一个脚本,UICenterOnChild,故名思义,其应该就是讲Scrollview上的Item居中的,其思想和算法也很简单,详见其函数
/// <summary>
/// Center the panel on the specified target.
/// </summary>
public void CenterOn (Transform target)
{
if (mScrollView != null && mScrollView.panel != null)
{
Vector3[] corners = mScrollView.panel.worldCorners;
// 获取Panel的中心位置
Vector3 panelCenter = (corners[2] + corners[0]) * 0.5f;
//将需要居中的物体放在Pancel的中心位置
CenterOn(target, panelCenter);
}
}
如果我们需要居中ScrollView中的某个物体,只需要调用该函数就可以了。 如果需要增加方向键的支持,我们自己需要维护item子物体的位置信息, 然后调用该函数就可以了。