- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我看到有很多这样的问题,我想我正在遵循公认的 Swift 3 方法,但我仍然一无所获。我可以看到 UITapGestureRecognizer 已附加。这是我的代码:
let tileClick = UITapGestureRecognizer(target: self, action: #selector(GameManagement.initiateTileClick(_:)))
newView.addGestureRecognizer(tileClick)
newView.isUserInteractionEnabled = true
func initiateTileClick(_ sender: UITapGestureRecognizer) {
print("initiate tile click")
}
一些注意事项:
1) 我附加手势识别器的 View 有两个 View 和一个标签,每个 View 覆盖整个 View 框架,但是,我尝试将识别器附加到标签,这是最上面的子项,它仍然不起作用。
2) 添加识别器的函数和点击时调用的函数都包含在一个 NSObject 文件中。我有各种相互关联的功能,我希望能够从多个 View Controller 调用这些功能,并且更愿意将其保存在单独的 NSObject 文件中。当我将所有内容都放在 UIViewController 文件中时,该过程有效;当我将函数移至 NSObject 文件时,该过程停止工作。
3) 我试过将 GameManagement.initiateTileClick
更改为 self.initiateTileClick
或只是 initiateTileClick
但这些都不起作用。
最佳答案
如果您将 View 放在 NSObject
子类中,那么这些 views
将失去它们对 UIResponder
的行为,它像我一样管理 UI 交互无法看到您如何将这些 View 添加到界面。
如您所说,它在 ViewController
内部工作,因为它管理 View 层次结构和响应者链。
解决方案是编写扩展
来分离代码或更好的抽象。
extension YourViewController {
newView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(GameManagement.initiateTileClick(_:))))
newView.isUserInteractionEnabled = true
func initiateTileClick(_ sender: UITapGestureRecognizer) {
print("initiate tile click")
}
}
关于ios - UITapGestureRecognizer 不工作 - Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43837359/
有没有办法检测用户所做的旋转是顺时针还是逆时针方向??? 我搜索过但找不到答案! 我的代码如下所示: UIGestureRecognizer *recognizer; recognizer = [
我正在使用 UITapGestureRecognizer 进行双击。当我双击 UIButton 时,它可以工作。但我想避免它吗?有内置方法吗? 最佳答案 您可以通过设置以下 bool 值来阻止 UIT
我有以下代码: - (void)viewDidLoad { UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init
我有一个主视图 Controller ,它被称为WelcomeViewController。我有一个 UIView 子类,其中有一些与 View 相关的内容。我想向该子类添加一个 UITapGestu
UITapGestureRecognizer 不适合我,我想知道是否有人可以提供帮助。 这是我的 View 定义: @interface MainDisplayView : UIView 在实现中,
这太奇怪了,我创建了一个新项目来测试我是否要疯了。 您可以在这里查看项目 https://github.com/ojfoggin/TapTest 我创建了一个带有 UITabBarController
是否可以为触地事件设置 UITapGestureRecogniser?默认是修饰... 最佳答案 不,这是不可能的,但继承 UIGestureRecognizer 应该不难创建您自己的识别器。 您也可
我想设置一个 UITapGestureRecognizer 以允许用户添加图像作为配置文件。我设置了代码,但是当我触摸图像时,什么也没有发生。代码如下: @IBAction func selezion
现在我有一个功能,如果点击底部文本字段,则整个屏幕向上移动,否则如果点击顶部文本字段,则我不会移动屏幕: func keyboardWillShow(notification: NSNotificat
我正在尝试创建一个利用 UITapGestureRecignizer 来执行转场的按钮。由于某种原因,当我尝试从导航面板按住 Control 键拖动到助理编辑器时,它无法连接。我正在使用以下代码: o
我已经搜索了此问题的解决方案,但找不到任何似乎可以解决我的情况的内容。我从 UITapGestureRecognizer 收到上述异常。 这是简化的代码: import UIKit; class Vi
我正在尝试向 View 添加 2 个 UITapGestureRecognizers,一个用于单击事件,一个用于双击事件。单击识别器按预期工作(自行)。但我似乎无法让双击识别器工作。 已尝试尝试以下属
我的 UITapGestureRecognizer 有问题。我使用这段代码: let gesture = UITapGestureRecognizer(target: self, action: #s
为了做好准备,我有一个 4x5 的 UIImageView 网格,我想在点击时翻转并显示新图像。我想用一个@IBaction 来完成这个任务。我只是在识别点击时引用选定的 UIIMageView 时遇
我的 UIViewController 上有一个 UITapGestureRecognizer。 UIViewController 有一个 UIScrollView,它有一个 UIWebView。现在
我正在使用 UITapGestureRecognizer 这是我的代码: Home.m: - (void)viewDidLoad { [super viewDidLoad]; UITa
我在最低 View (self.view) 上使用 UITapGestureRecognizer 来隐藏我的键盘。 UITapGestureRecognizer *tapHandler = [[UIT
我正在尝试在我的 iOS 应用程序上实现一种“帮助模式”。当用户点击帮助按钮时,UITapGestureRecognizer 会拦截对屏幕的触摸,如果它在控件上,则会出现一个带有帮助信息的小弹出窗口。
我有一个红色的 SCNNode,它以 1/2 的方式悬停在蓝色 SCNNode 上。我需要它们两个的dragEvent,这样当它们被滑动时它们就会移动(效果很好)。问题是我只需要蓝色节点的 tapEv
我的任务是将音频播放器添加到现有的 iPad/iPhone 应用程序中。在过去的两天里,我一直在努力弄清楚为什么我不能让一个简单的点击手势工作。我已经搜索了互联网无济于事。我知道有几个这样的问题已经存
我是一名优秀的程序员,十分优秀!