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