在 UIPageViewController
的 GestureRecognizers
覆盖的区域内,我的 ViewController 上有几个按钮。此区域中的点击由 UIPageViewController
使用,并且永远不会触及下面的按钮。
我读过 iPad - PageViewController - Show next view controller on button click和 UIPageViewController Gesture recognizers并了解原理,但之前没有 Obj-C 经验,并且正在努力在 C# 中重新创建这些解决方案。
有人可以提供一个示例,说明如何在 MonoTouch 中完成此操作吗?
最佳答案
以下是您的第一个链接如何使用 MonoTouch 转换为 C#(注意:未尝试过)。
首先,您将为 UIGestureRecognizer
创建您自己的(非 .NET)委托(delegate),如下所示:
class MyUIGestureRecognizerDelegate : UIGestureRecognizerDelegate {
public override bool ShouldReceiveTouch (UIGestureRecognizer recognizer, UITouch touch)
{
return (!(touch.View is UIControl));
}
}
如果触摸手势不适用于 UIControl
(包括按钮),它将返回 true
。
然后您需要将此委托(delegate)分配给分配给您的UIPageViewController
的GestureRecognizers
。
MyUIGestureRecognizerDelegate del = new MyUIGestureRecognizerDelegate ();
UIPageViewController pvc = new UIPageViewController ();
foreach (var gr in pvc.GestureRecognizers)
gr.Delegate = del;
这让您可以调整手势的解释方式。如果手势本身不处理,则应将其路由到您自己的控件/按钮。
关于c# - 在 Monotouch 中检测 UIPageViewController 中控件的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8933708/