- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在创建一个简历应用程序(主要是为了好玩),但似乎无法让点击手势识别器为我工作。我想要的是让一个标签显示信息,并根据他们在下面点击的标题标签来改变它。这是我写的代码:
import UIKit
class WorkHistoryViewController: UIViewController {
// MARK: Properties
@IBOutlet weak var jobOne: UILabel!
@IBOutlet weak var jobTwo: UILabel!
@IBOutlet weak var jobThree: UILabel!
@IBOutlet weak var jobFour: UILabel!
@IBOutlet weak var jobFive: UILabel!
@IBOutlet weak var workHistoryDescriptionLabel: UILabel!
let tapRec = UITapGestureRecognizer()
override func viewDidLoad() {
super.viewDidLoad()
tapRec.addTarget(self, action: "tappedLabel")
jobOne.addGestureRecognizer(tapRec)
jobTwo.addGestureRecognizer(tapRec)
jobThree.addGestureRecognizer(tapRec)
jobFour.addGestureRecognizer(tapRec)
jobFive.addGestureRecognizer(tapRec)
}
// MARK: Methods
func tappedLabel() {
workHistoryDescriptionLabel.text = "It worked!"
}
}
发生的事情是,最后一个在 viewDidLoad() 中调用 addGestureRecognizer() 的标签是唯一有效的标签。如果我注释掉最后一行,那么只有上面的标签有效。我还尝试以编程方式在每个标签和属性检查器上启用用户交互,但都没有改变任何东西。
最佳答案
根据 Apple 的事件处理指南
Gesture Recognizers Are Attached to a View
Every gesture recognizer is associated with one view. By contrast, a view can have multiple gesture recognizers, because a single view might respond to many different gestures. For a gesture recognizer to recognize touches that occur in a particular view, you must attach the gesture recognizer to that view. When a user touches that view, the gesture recognizer receives a message that a touch occurred before the view object does. As a result, the gesture recognizer can respond to touches on behalf of the view.
因此您需要创建多个 UITapGestureRecognizer
实例并将它们附加到每个 View ,即使它们执行相同的操作也是如此。
例如,
let tapRecOne = UITapGestureRecognizer()
tapRecOne.addTarget(self, action: "tappedLabel")
jobOne.addGestureRecognizer(tapRecOne)
let tapRecTwo = UITapGestureRecognizer()
tapRecTwo.addTarget(self, action: "tappedLabel")
jobTwo.addGestureRecognizer(tapRecTwo)
等等。
关于ios - UITapGestureRecognizer 仅适用于最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35909159/
有没有办法检测用户所做的旋转是顺时针还是逆时针方向??? 我搜索过但找不到答案! 我的代码如下所示: 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 应用程序中。在过去的两天里,我一直在努力弄清楚为什么我不能让一个简单的点击手势工作。我已经搜索了互联网无济于事。我知道有几个这样的问题已经存
我是一名优秀的程序员,十分优秀!