使用 DecelerationEnded 会干扰其他回调

2024-01-09

我正在尝试使用减速结束与 ' 一起回调Tapped' MT.Dialog 元素上的回调。我无法让两者同时工作。

当 DecelerationEnded 回调被注释掉时,“点击”回调将起作用。当它被注释时,“tapped”回调将不再被触发(而 DecelerationEnded 会被触发)。

当 DecelerationEnded 调用移至根设置之上时,按钮“点击”回调将起作用,但 DecelerationEnded 回调不会起作用。将回调设置延迟到 ViewWillAppear 也无法解决任何问题。

有什么解决办法吗?

示例代码:

public class TestController : DialogViewController
{
    public TestController () : base(UITableViewStyle.Plain, null, true)
    {
        // Create list of 20 buttons.
        Section s = new Section();

        for (int i = 0; i < 20; i++ )
        {
            s.Add(new StringElement("test " + i, () => {
                Console.WriteLine("Tapped"); // Tapped callback.
            }));
        }

        Root = new RootElement("Test") {s};

        // The following line causes all the "tapped" handlers to not work.
        this.TableView.DecelerationEnded += HandleDecelerationEnded;
    }

    void HandleDecelerationEnded (object sender, EventArgs e)
    {
        Console.WriteLine ("Deceleration Ended");
    }
}

在 MonoTouch 中,您可以使用 C# 风格的回调或 Objective-C 风格的回调,但它们不能混合在一起:

http://docs.xamarin.com/ios/advanced_topics/api_design#Delegates http://docs.xamarin.com/ios/advanced_topics/api_design#Delegates

在内部,MonoTouch.Dialog 库通过提供处理所有事件的完整子类来实现其功能。如果您使用 C# 语法,它将用代理替换内置处理程序,在本例中,代理仅响应 DecelerationEnded。

如果你想连接到这个,你需要子类化现有的“Source”类,并通过重写 CreateSizingSource 创建它,它应该提供你的类的一个新实例。这是您需要重写的虚拟方法,以提供相同的行为,但使用您自己的类:

public virtual Source CreateSizingSource (bool unevenRows)
{
    return unevenRows ? new SizingSource (this) : new Source (this);
}

您只需子类化 SizingSource 并重写其中的减速方法即可。

TweetStation 有一个示例展示了如何完成此操作:它使用相同的事件来确定何时从屏幕上删除未读推文的数量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 DecelerationEnded 会干扰其他回调 的相关文章

  • xcode 6.1 (Swift) 中的 SIGABRT 运行时错误

    与最初的代码相比 唯一的更改是在ViewControl swift override func viewDidLoad newMessage hidden true super viewDidLoad Do any additional s
  • iOS App Store ExecutionEngineException 尝试 JIT 编译

    我有一个非常尴尬的问题 我已经为 iOS 构建了我的应用程序 并在所有模拟器上对其进行了测试 并且运行良好 我已将其安装在设备 iPhone 6 plus 上 效果也很好 然而 当我将其提交到应用商店时 反馈是它在所有设备上启动时都会崩溃
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • 如何从 C# 控制器重定向到外部 url

    我使用 C 控制器作为网络服务 在其中我想将用户重定向到外部网址 我该怎么做 Tried System Web HttpContext Current Response Redirect 但没有成功 使用控制器的重定向 http msdn
  • 如何从网站下载 .EXE 文件?

    我正在编写一个应用程序 需要从网站下载 exe 文件 我正在使用 Visual Studio Express 2008 我正在使用以下代码 private void button1 Click object sender EventArgs
  • 我应该在哪个方法中设置 UITextField 的委托?

    在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一个好习惯吗 我尝试在 init 方法中将委托设置为 self 但它没有调用相应的委托方法 当我将代码移动到 viewDidLoad 中时 它注册为将 s
  • Qt 创建布局并动态添加小部件到布局

    我正在尝试在 MainWindow 类中动态创建布局 我有四个框架 它们是用网格布局对象放置的 每个框架都包含一个自定义的 ClockWidget 我希望 ClockWidget 对象在调整主窗口大小时相应地调整大小 因此我需要将它们添加到
  • 如何重置捕获像素的值

    我正在尝试创建一个 C 函数 该函数返回屏幕截图位图中每四个像素的 R G 和 B 值 这是我的代码的一部分 for int ix 4 ix lt 1366 ix ix 4 x x 4 for int iy 3 iy lt 768 iy i
  • 如何在c#中的内部类中访问外部类的变量[重复]

    这个问题在这里已经有答案了 我有两个类 我需要声明两个类共有的变量 如果是嵌套类 我需要访问内部类中的外部类变量 请给我一个更好的方法来在 C 中做到这一点 示例代码 Class A int a Class B Need to access
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector
  • 为什么这个 SKPhysicsJointPin 不能将这 2 个精灵保持在一起?

    我显然不太了解 SKPhysicsJoint 但是除了 Apple 文档之外 网上的信息还很少 下面的代码有什么问题 我认为应该保持头部和颈部永久连接 我的意图是它们就像两张带有大头针的纸 这样它们可以旋转一点 但不仅仅是完全分开 当我运行
  • ActionScript、NetStream.Play.Failed iOS AIR 移动设备

    我正在尝试以类似于 Tiberiu Ionu Stan http stackoverflow com questions 2036107 aac mp4 not working in actionscript 3s netstream 的方
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • 将代码拆分为标头/源文件

    我从 Asio 的示例页面中获取了以下代码 class tcp connection public boost enable shared from this
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网
  • 实例化 Microsoft.Office.Interop.Excel.Application 对象时出现错误:800700c1

    实例化 Microsoft Office Interop Excel Application 以从 winforms 应用程序生成 Excel 时 出现以下错误 这之前是有效的 但突然间它停止工作了 尽管代码和 Excel 版本没有变化 我

随机推荐

  • 错误:用户 ''@'localhost' 的访问被拒绝(使用密码:NO)

    我正在尝试使用 MySQL 和 Knex 进行数据库迁移 当我运行命令时knex migrate latest I get ER ACCESS DENIED ERROR Access denied for user localhost us
  • 使用 Node 提供 Vue 应用程序时,构建会导致空 HTML 页面出现语法错误

    我使用 CLI 创建了一个 VueJs 页面 我想在没有安装 Vue CLI 或 Node 的情况下向其他人展示它 就像您通常在浏览器中打开 html 文件一样 我想在构建后打开 index html 文件 当我打开该文件时 我在控制台中看
  • Postgres 中的 Group by 子句中有多个不需要的记录

    我有两张桌子 我将它们连接在一起 然后运行group by条款 问题是我不断收到不需要的数据 client table name company id created at company table name Query SELECT c
  • 使用 VSCode 调试 Celery

    我在用VSCode https code visualstudio com 用于使用 Django 框架进行 Web 开发 调试 Django 没有任何问题 但是当我尝试使用Celery http docs celeryproject or
  • Noob file.copy 问题在复制 .exe 文件 C# 时遇到问题

    我试图将 exe 文件从临时目录复制到桌面 但是当我这样做时 它只是创建一个新的 exe 文件 其中没有数据 大小为 0 KB 我用 txt 文件测试了这个语法 它完全复制了它 只是由于某种原因拒绝复制 exe 文件 我尝试使用string
  • 将颜色声明为常量

    我怎样才能申报Color输入为const像这样 private const Color MyLovedColor Color Blue 这不起作用 因为 Color Blue 是静态的而不是常量 只读对我没有帮助 因为我需要仅 支持 常量的
  • 纬度返回 0,0

    我正在尝试创建一个显示我当前位置的应用程序 我拥有所有必要的许可 我有另一个类名称 GPS 跟踪器来获取我的 GPS 位置 这是我的代码 GPSTracker gpsTracker new GPSTracker this LocationM
  • Nexus 7 上的 Android 4.2:canvas.drawText() 无法正常工作

    我的应用程序面临严重问题 该应用程序发布在 Google Play 上 并且显然在除 gt 4 0 之外的所有 Android 版本上都运行良好 这是我的 Android 4 0 HTC 手机的屏幕截图 这是我在 Nexus 7 Andro
  • 在 Sweetalert 上显示成功消息通知

    我想显示使用 Sweetalert 成功删除数据的消息以及脚本的开头 a href class delete link Delete a JavaScript jQuery document ready function delete li
  • 创建自定义大通知

    我想创建一个包含一些控件的通知 由于文本和控件在默认通知大小 64dp 下都很小 因此我希望它比默认大小更大 可以创建更大的通知 我认为也可以有自定义布局 但我不知道如何 To be more specific the following
  • Clojurescript:错误:无法找到或加载主类 clojure.main

    我按照它安装了 Clojurescript快速入门指南 https github com clojure clojurescript wiki Quick Start 我将 git 存储库拉到 clojurescript CLOJURESC
  • SwiftUI @State var 初始化问题

    我想初始化 a 的值 StateSwiftUI 中的 var 通过init 的方法Struct 因此它可以从准备好的字典中获取正确的文本 以便在 TextField 中进行操作 源代码如下所示 struct StateFromOutside
  • $_GET 。未定义的变量。找不到解决方案[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我遇到了问题并且没有想法 我试图从 URL 获取参数 但 PHP 坚持说该变量未定义 网址是 http localhost tre
  • Twitter Bootstrap 中的响应式表处理

    当表格的宽度超过跨度的宽度时 就像这个页面 http jsfiddle net rcHdC http jsfiddle net rcHdC 您将看到表格的内容超出了span 解决这种情况的最佳方法是什么 引导程序3 http blog ge
  • 如何在 AngularJS 指令中的元素上绑定滚动事件

    如何在 AngularJS 指令中的元素上绑定滚动事件 我在 window 上绑定滚动 但现在我需要将其更改为此类 body wrapper angular element document queryselector body wrapp
  • 如何将 pandas 数据框逐行写入 CSV 文件,一次一行?

    我有一个大约 100 万个地址的列表 以及一个查找它们的纬度和经度的函数 由于某些记录的格式不正确 或出于任何原因 有时该函数无法返回某些地址的纬度和经度 这将导致 for 循环中断 因此 对于成功检索到纬度和经度的每个地址 我想将其写入输
  • firebase db:具有 Kotlin 委托属性的模型

    我正在使用 Kotlin 对象来处理我的 Firebase 数据库模型 如上所述在指南中 https firebase google com docs database android read and write basic write
  • 使用 JavaScript 滚动页面

    我在用着Ender js http ender no de 我试图让页面滚动到特定位置 我认为我在这里做错了什么 但页面甚至没有移动 理想情况下 我希望使用动画事件 但 emile 不接受scrollTop 作为参数 任何帮助表示赞赏 do
  • UICollectionView indexPathsForVisibleItems 不更新新的可见单元格

    我有一个 ViewController 里面有一个 CollectionView 加载视图时 可见单元格 9 个单元格 会正确显示 当我向下滚动时 我想通过调用partnerCollectionView的indexPathsForVisib
  • 使用 DecelerationEnded 会干扰其他回调

    我正在尝试使用减速结束与 一起回调Tapped MT Dialog 元素上的回调 我无法让两者同时工作 当 DecelerationEnded 回调被注释掉时 点击 回调将起作用 当它被注释时 tapped 回调将不再被触发 而 Decel