如何解决在 iOS 中是否有等效于 xamarin.android DispatchTouchEvent()
我正在制作一个网格,将其触摸事件发送给其子项(因此我可以将不同的滚动视图附加到一起滚动)
我为 android 制作了这个自定义渲染器
public class ScrollableGridRenderer : VieWrenderer
{
ScrollableGrid? _control;
bool _elementChanged;
readonly IList<Android.Views.View> _children;
public ScrollableGridRenderer(Context context) : base(context)
{
_children = new List<Android.Views.View>();
}
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.View> e)
{
base.OnElementChanged(e);
if (e.NewElement is ScrollableGrid element)
{
_control = element;
_elementChanged = true;
}
}
public override bool OnInterceptTouchEvent(MotionEvent ev)
{
if (_control == null) return false;
if (!_elementChanged) return true;
_children.Clear();
for (int i = 0; i < _control.Children.Count; i++)
{
Android.Views.View? child = GetChildAt(i);
if (child != null) _children.Add(child);
}
_elementChanged = false;
return true;
public override bool OnTouchEvent(MotionEvent? ev)
{
if (_control == null) return true;
foreach (Android.Views.View child in _children)
{
child.dispatchTouchEvent(ev);
}
return true;
}
}
正如你所看到的,我所做的就是列出网格的孩子,然后向前发送触摸事件(我还没有尝试包括按钮或任何手势识别器,但我知道它们可能会如何搞砸,我不包括它们,我的测试表明,对于静态数据,它工作得很好!否则,如果将滚动视图方向设置为水平,则它不起作用,但这无关紧要)
我的问题是如何用 iOS 做同样的事情?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。