- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想检测何时触摸其他地方而不是特定的 UIView
。我正在使用touchesBegan
然而,对于它,它总是打印“触摸在外面”(参见下面的代码)。我错过了什么?
我从中得到了帮助post .
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
let hitView = self.view.hitTest(touch.location(in: self.view), with: event)
if hitView === checkBackContainer {
print("touch is inside")
} else {
print("touch is outside")
}
}
super.touchesBegan(touches, with: event)
}
在ViewDidLoad
内添加了 anchor 功能
private lazy var checkBackContainer = ImageUploadContainerView()
override func viewDidLoad(){
self.view.addSubview(checkBackContainer)
checkBackContainer.anchorCenterXToSuperview()
checkBackContainer.topAnchor.constraint(equalTo: checkFrontContainer.bottomAnchor, constant: 20).isActive = true
checkBackContainer.leftAnchor.constraint(equalTo: self.view.leftAnchor, constant: 25).isActive = true
checkBackContainer.rightAnchor.constraint(equalTo: self.view.rightAnchor, constant: -25).isActive = true
checkBackContainer.heightAnchor.constraint(equalTo: checkBackContainer.widthAnchor, multiplier: 0.42).isActive = true
checkBackContainer.layer.applySketchShadow(color: UIColor.white, alpha: 1.0, x: 0, y: 0.33, blur: 1, spread: 0, cornerRadius: 6)
let backTap = UITapGestureRecognizer(target: self, action: #selector(self.backContainerTapped(_:)))
checkBackContainer.addGestureRecognizer(backTap) }
编辑: ContainerView 是自定义的 UIView
其中有一些UIStackView
s,UIlabel
和 UIImageView
就在里面。我发现是因为自定义UIView
,当我用常规 UIView
更改它时。它正在工作。
最佳答案
尝试将 UIGestureRecognizer 添加到您想要在触摸时检测到的 View :
let tap = UITapGestureRecognizer(target: self, action: #selector(didTap(sender:)))
view1.addGestureRecognizer(tap)
view2.addGestureRecognizer(tap)
@objc func didTap(sender: UITapGestureRecognizer) {
//Perform whatever you want in here
}
或者,您可以循环遍历父 View 的所有 subview 并排除您想要排除的任何 View ,如下所示:
for view in self.view.subviews {
if view != viewYouWantToExclude {
view.addGestureRecognizer(tap)
}
}
关于ios - TouchesBegan 总是返回错误的 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53297970/
我正在编写一个 ipad 应用程序,您可以用 1 或 2 个手指在屏幕上拖动。我使用 touchesBegan、touchesMoved 和 touchesEnded 方法来识别触摸。我为 View
我的代码: var location = CGPoint(x:0,y:0) override func touchesBegan(touches: Set, withEvent event: UIEv
我正在尝试在我的 GameScene 中实现 ccTouchesBegan。 我已设置 isTouchEnabled = YES。我还在 touchDispatcher 上调用了 addStandar
我有以下代码可以在用户点击 View 时隐藏键盘,但 TouchBegan 根本不会触发: class LoginViewController: UIViewController, UITextFie
我有一个奇怪的问题,touchesBegan 处理程序被多次调用。如果我快速点击 UIView (UIButton) 2 次,touchesBegan 被调用 3 次。 我通过简单的时间测量解决了这个
所以问题是,当我启动它时,soundOff 按钮位于 soundOn 上方,但它是不可见的。所以我只看到了 soundOn 按钮,当我尝试点击 soundOn 按钮时,它实际上只是点击了 soundO
我有一个函数,每 2 秒被重复调用一次,每次从屏幕顶部带来一个具有随机纹理的球。我希望能够在 touchesBegan 中使用这个球,但我不能,因为它是一个局部变量。我试过将它设为全局变量,但这给了我
我正在尝试为我的应用程序弹出一个弹出窗口。到目前为止,弹出窗口在固定坐标处弹出,我试图让它在用户点击的位置弹出。这是我的: override func touchesBegan(touches: Se
// // CommentViewController.swift // Bordy // // Created by Micheal Tyler on 9/22/17. // Copyrig
是否可以在项目中的多个位置或对象中使用 touchesBegan 方法? 例如,如果我有一个带有两个按钮的主类: class GameScene: SKScene, SKPhysicsContactD
我正在尝试检测一个节点是否是敌人。如果是,我想删除它。我正在尝试使用 touched nodes 名称来检测这一点。我能够检测到节点的名称是否为敌人,但我不知道如何删除它。谢谢您的帮助! :) 这里是
我正在使用 UIPicker 来填充 UITextField 而不是键盘。这很好用,但我现在无法关闭 UIPicker。我希望能够点击屏幕上的任意位置并关闭 UIPicker。我已经尝试了每种触摸方法
我正在使用 NSTimer 构建一个旋转横幅来跟踪当前图像,该图像由 5 个不同的图像制成动画。我有一个 touchesBegan 设置,如果有人点击它,可以继续处理横幅上的触摸事件。我的概念验证有效
我目前正在使用 swift 开发一个 iOS 应用程序。我使用 override 编写了我自己的 tocuhesBegan 和 tochesEnded 函数。现在,当我使用 self.button 时
我的 Storyboard看起来像这样: Controller top/bottom layout guide view UIview UIBu
我想使用 touchesBegan 方法来了解用户何时在我的 TableView 中的 UITextField 之外点击。 我有一个包含 TableView 的 UIView,我有以下方法: - (v
touchesBegan: withEvent: / touchesMoved: withEvent: / touchesEnded: withEvent: 等只能被UIView捕获(如有问题请指出
我有一个文本字段,当我触摸屏幕上的其他位置时,它会隐藏键盘(通过我的 TouchesBegan 函数并辞职......等等)。但是当我触摸 Textview 时,TouchesBegan 不会被调用,
我想检测何时触摸其他地方而不是特定的 UIView 。我正在使用touchesBegan然而,对于它,它总是打印“触摸在外面”(参见下面的代码)。我错过了什么? 我从中得到了帮助post . over
我的 SKScene 有 1 个空节点 (buttonsGroup)。在我的 GameView 类中,我创建一个节点 (ball1),它是空节点的父节点。 buttonsGroup = chi
我是一名优秀的程序员,十分优秀!