- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 View 需要在全 View 上检测“Touch Down” Action ,在我发现普通的 UITapGestureRecognizer 无法完成之后,我自定义了 UIestureRecognizer 类来实现它,using this .
所以它确实有效,但我在 View 上有几个按钮,在我可以检测到 View 的 Touch Down 操作后,这些按钮停止工作。我需要它们都工作, View 检测 Touch Down 并且可以在 View 上方按下按钮。我怎样才能实现它?
需要明确的是,那些按钮只需要检测正常的 Touch Up Inside Action ,只有 View 需要检测 Touch Down Action 。此外,当按钮上发生触摸事件时, View 不需要对触摸事件使用react。
谢谢。
import UIKit
import UIKit.UIGestureRecognizerSubclass
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let t = SingleTouchDownGestureRecognizer(target: self, action: #selector(handleTap(sender:)))
self.view.addGestureRecognizer(t)
}
@objc func handleTap(sender: UITapGestureRecognizer? = nil) {
self.view.backgroundColor = #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1)
UIView.animate(withDuration: 1) {
self.view.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
}
}
@IBAction func testBtnPressed(_ sender: Any) {
print("testBtnPressed!")
}
}
class SingleTouchDownGestureRecognizer: UIGestureRecognizer {
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent) {
if self.state == .possible {
self.state = .recognized
}
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent) {
self.state = .failed
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent) {
self.state = .failed
}
}
最佳答案
您可以比较 touchesBegan 中的那个事件具有与分配给您的手势识别器的 View 相同的 View 的触摸
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent) {
guard let view = self.view else { return }
guard let touches = event.touches(for: view) else { return }
super.touchesBegan(touches, with: event)
if self.state == .possible {
self.state = .recognized
}
}
关于ios - 我将 UIGestureRecognizer 添加到 View 以检测 Touch Down Action ,但是 View 上方的按钮将不再起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56816162/
我知道触摸事件可以传递给点击 View 或手势。但在我的演示中有些让我感到困惑: 我的 Root View 中有两个 subview ,一个是 testView(UIView 的子类),另一个是 te
我有一个带有一些手势识别器(ala Clear)的 View 。我应该只为语音用户添加按钮吗? 我考虑过使用提示来表达类似“3 指向右滑动以编辑。向左滑动以删除。向上滑动以创建新的”之类的内容。但似乎
我有两个问题: 我能否实现继承自 UISwipeGestureRecognizer 的手势识别器并将逻辑添加到 UIEvent 处理程序? 我可以在不将它附加到 UIView 的情况下实现 UIGes
我正在开发 iPhone 应用程序,但遇到了手势识别器的问题。 我在一个 View 上添加了一个 UITapGestureRecognizer,然后我用 CABasicAnimation 转换与这个
我有很多类,想要将 UIGestureRecognizer 添加到它们的 UIImageViews 中。 我正确地将一个添加到所有类中。问题是我重复了代码,以便每个类都添加相同的识别器。这些是本地识别
我想在我的 UIPinchGestureRecognizer 完成捏合手势时收到回调。此外,如果知道完成的手势是放大还是缩小,那就太好了。 有人知道使用方法吗?或者采取什么方法? 谢谢! 最佳答案 另
我已经在 View Controller 的 viewDidLoad 上设置了 UITapGestureRecognizer,但不知何故,它会为单次点击触发两次选择器方法。 UITapGestureR
我正在使用 UIPanGestureRecognizer在几个类似卡片的 View 上,让用户在屏幕上移动 View 。他们可以同时放下 3 个手指并拾取 3 张卡片,这非常好,但是,我的某些功能并不
这里给出一个例子,(使用 ARC ) UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] init
当我使用 UIGestureRecognizer ,例如,当用户向右滑动时,我想要一个 UIAlertView询问他是否真的要进行向右滑动的 Action 。 我曾尝试这样做,但没有成功。 最佳答案
我有一个子类 UIView ,我们称之为TileView.m/h . 在 TileView.m ,我有以下代码:( [setup] 肯定被调用,我用断点检查过)。 - (void)setup {
我有一个 UIGestureRecognizer附加到 UILabel当稍后进入视野时,它会在屏幕外渲染。进入视野后,点击手势识别器不起作用。如果在 View 中渲染,它工作正常。 任何想法为什么这不
我已经使用 UIPanGestureRecognizer 实现了一些交互式 UIViewController 演示动画,例如平移以呈现 View Controller 。 我现在要做的是允许这种行为通
在我的 tvOS 应用程序中,我有一个 Collection View ,其中包含代表电影的单元格。 我在 View 上附加了 2 个手势识别器: 点击选择即可查看电影详细信息 直接播放影片(使用 A
UIGestureRecognizer 导致未捕获的异常错误。它说无法识别的选择器发送到实例。我正在使用 Swift 3 和 Xcode 8。 这是代码。 import UIKit import UI
我正在制作一个在图像上包含几个图层的应用程序。该效果层是 UIView - EffectsLayerView 的子级。里面有Effect1View、Effect2View和Effect3View,其中
我有两个类,它们都添加了 UIPinchGestureRecognizer 并使用选择器来处理响应手势的代码。注意:手势识别器委托(delegate)可能与此问题无关,但我将其包含在代码中,以防万一。
我正在尝试学习 Swift,这让我很困惑: 假设您要添加手势: faceView.addGestureRecognizer(UIPinchGestureRecognizer(targe
我刚开始使用适用于 iOS 的 Google Maps SDK,但遇到了一些问题。我正在尝试添加以下代码: - (void)viewDidLoad { [super viewDidLoad];
我正在学习 iOS 开发并且正在查看 UIGestureRecognizer 的。 我有一个观点。当您点击该 View 时,我想显示一个 UIPopoverController 并且我还希望它像 UI
我是一名优秀的程序员,十分优秀!