在Unity3D中刷新ScrollView

时间:2018-10-27 15:25:32

标签: c# unity3d

有人知道如何检测UI组件“ ScrollView”是否已被拉起吗? 按计划,当您使用向上滑动手势刷新youtube或facebook中的feed时,就像这样。 它应该检测到手势,然后调用我拥有的方法:refresh(); 谢谢。

1 个答案:

答案 0 :(得分:0)

ScrollRect:

您可以订阅ScrollRect的onValueChanged事件,并且ScrollRect上发生更改时将调用该事件。

public ScrollRect scrollRect;

void OnEnable()
{
    scrollRect.onValueChanged.AddListener(ScrollChanged);
}

void OnDisable()
{
    scrollRect.onValueChanged.RemoveAllListeners();
}

void ScrollChanged(Vector2 pos)
{
    Debug.Log("Scroll changed pos to: " + pos);
}

或者您可以实现IScrollHandler接口并使用OnScroll函数。该脚本必须附加到具有ScrollRect组件的GameObject上。

public class ScrollDetector : MonoBehaviour, IScrollHandler
{
    public void OnScroll(PointerEventData eventData)
    {

    }
}

滚动条:

如果使用Scrollbar,则在onValueChanged事件中注册的回调函数应使用float代替vector2作为参数。

void ScrollChanged(float val)
{

}

或实施IMoveHandler接口并使用OnMove函数

public class ScrollDetector : MonoBehaviour, IMoveHandler
{
    public void OnMove(AxisEventData eventData)
    {

    }
}