在我的移动的程序的UI中,我有一个SignaturePadView
(从UIView继承的第三方组件)。每当我试图调试程序时,只要我把手指放在SignaturePadView
中并开始签名,它所在的ScrollView就会捕获输入并滚动,不允许我创建签名。当用户触摸SignaturePadView
内部时,是否有任何方法禁用UIScrollView
的滚动功能。
有两件事我尝试过但没有成功:
1.在SignaturePadView
上将ExclusiveTouch
设置为true。对于这个,看起来ScrollView在检查ExclusiveTouch
之前捕获了输入。
1.子类化UIScrollView
并覆盖TouchesShouldBegin
以关闭滚动。这允许我检查inContentView
参数以查看它是否属于SignaturePadView
类型。这有两个问题:首先,SignaturePadView
内部的子视图被返回到inContentView
而不是SignaturePadView
。其次,TouchesEnd
并不总是被触发,允许我在用户完成签名后重新打开滚动。
在这个时候,我正在寻找任何帮助,我可以得到这一点。我是新的Xamarin和iOS开发,这最后一件事是阻止我完成我的项目。
2条答案
按热度按时间wlp8pajw1#
我在翻阅了一些C2C代码后发现了这个问题。我必须子类化
ScrollView
并覆盖HitTest
。对于将来遇到这个问题的任何人,这里是我使用的代码。自定义滚动视图:
字符串
在我的ViewController中:
_formView.DeadAreas.Add(signaturePadViewer.Frame);
个工作起来很有魅力。原来我最初的错误是覆盖了Touch方法而不是
HitTest
方法。tktrz96b2#
只是想弹出并更新这个线程。罗伯特仍然有正确的方式去做它,我会做每个人的青睐张贴从C -> Swift转换的代码。
享受和快乐狩猎!
字符串
}