c# - 在 Monotouch 中检测 UIPageViewController 中控件的触摸事件

标签 c# ios xamarin.ios uigesturerecognizer uipageviewcontroller

UIPageViewControllerGestureRecognizers 覆盖的区域内,我的 ViewController 上有几个按钮。此区域中的点击由 UIPageViewController 使用,并且永远不会触及下面的按钮。

我读过 iPad - PageViewController - Show next view controller on button clickUIPageViewController 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)分配给分配给您的UIPageViewControllerGestureRecognizers

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/

相关文章:

c# - 自动操作 Entity Framework 实体以添加额外信息

iphone - iOS - 类中的这个声明是否正确?

ios - 将文件添加到 Xcode 和 git

ios - Xamarin WebView iOS检测滚动事件

c# - Membership.ValidateUser 方法如何访问数据库?

c# - 如何从列表框中进行选择

c# - 关于 EF Code First Fluent API、TPH 和外键的困难

ios - UICollectionView VS UITableview

objective-c - 使用选择器从 MonoTouch 调用 Obj-C

ios - 如何使用 SDK 版本 5.0 部署 xamarin ios 应用程序以在 visual studio 2013 中使用旧主题(不是 iOS 7 主题)