- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有以下设置。
主视图 Controller (MainViewController) 在父 subview Controller 配置中包含另一个 View Controller (ListViewController)。
ListVC 从 MainVC 底部的某处开始。 ListVC 包含顶部的 UIView 和底部的 TableView 。表格 View 附加了一个平移手势识别器。
我想要实现的是,当我通过平移手势向上拉动 ListVC 时,它会向上移动到屏幕顶部。当它到达顶部(或者更准确地说,在顶部布局指南下方一定距离)时,listVC 停止在 mainVC 中移动并且 TableView 开始滚动。这几乎就像我已经将控制权从平移手势转移到表格 View 的手势。
我现在这样做的方式是实现 UIGestureRecognizerDelegate
协议(protocol)。
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
和
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer) -> Bool {
if gestureRecognizer == pullGesture {
return pullGestureIsPriority
}
return false
}
和
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOf otherGestureRecognizer: UIGestureRecognizer) -> Bool {
if gestureRecognizer == pullGesture {
return !pullGestureIsPriority
}
return false
}
如果 listVC 还没有到达顶部,pullGesutre 是一个优先级。我通过设置 self.pullGesture.isEnabled = false
后立即设置 self.pullGesture.isEnabled = true
使 pullGesture 失败。
现在一切正常;我能够在没有向上滚动 TableView 的情况下将其拉起,当 listVC 到达顶部时,我的拉动手势失败,因此 TableView 开始向上滚动。当我向下滚动 TableView 直到到达 TableView 的顶部时,问题就来了,此时,我希望 listVC 会通过拉动手势下降。但这并没有发生。不知何故,pullGesture 已从触摸事件链中删除。
有人知道我如何实现这一点吗?
请注意,我实际上是在尝试复制 Apple 在 iOS 10 中对其 map 所做的操作。我还附上了一个小 gif 来演示我的意思。
可在此处找到演示项目。
最佳答案
如果您要做的是在两个 View Controller 之间发送“事件”或“ Action ”,您可以使用 sendAction。
(1)添加一个UIButton,设置frame为CGRect.zero,添加到你的ListVC中。
(2) 在您想要联系 MainVC 的 ListVC 代码中,添加以下行:
myButton.sendAction(Selector(("tapFound")), to: nil, for: nil)
(3) 在您的 MainVC 中,添加此函数:
func tapFound() {
}
我之前在几个应用程序中做过这个,告诉主 VC 添加一些新的 subview 。您甚至可以将发送者(UITapRecognizer 不是)传递给新的 View Controller ,并将标记属性设置为让 VC 确切知道需要什么。
关于ios - 如何将控制权从一个手势识别器传递给另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40507077/
所以我使用 PyGame 制作了 Pong,我想使用遗传算法让 AI 学习玩这个游戏。我希望它只知道其桨、球和控件的位置。我只是不知道如何让人工智能自己移动桨。我不想这样做:“如果球在你上方,就向上。
我有包含 4 个子选项卡的 TabControl。 每个选项卡都包含图片框控件。 我需要获取选中的Tab控件的图片框控件。 知道如何实现吗? 最佳答案 也许 var picBox = TabContr
我需要使用 Java 代码控制 Windows XP 的 Windows,我需要单击/键入 windowsXP 给定窗口的特定按钮/文本字段,如何做到这一点有什么想法吗? 我尝试过的方法是:(1) 我
我是一名优秀的程序员,十分优秀!