- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习 iOS 开发并且正在查看 UIGestureRecognizer
的。
我有一个观点。当您点击该 View 时,我想显示一个 UIPopoverController
并且我还希望它像 UIButton
一样工作,因为当您按下它时它会“突出显示”。
我想这样做的方法是使用 2 个 UIGestureRecognizer
- 一个 UITapGestureRecognizer
和一个 UILongPressGestureRecognizer
我遇到的问题是 highlight 方法被立即调用(这是我想要的),但如果我将手指移动得足够远,UITapGestureRecognizer
就会被取消。那时,我想调用另一种方法 (unhighlight
) 来恢复 UIView
的初始背景颜色,但我不知道该怎么做。
我对此很陌生,所以这个问题可能很基础,我感谢任何人能给我的帮助。
在 UIViewController
中:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(togglePopover)];
[self.view addGestureRecognizer:tap];
UILongPressGestureRecognizer *press = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(highlight)];
press.minimumPressDuration = 0.f; //highlight immediately
press.delegate = self; //set the delegate to self
[self.view addGestureRecognizer:highlight];
//the delegate part of the UIViewController
- (BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldRecognizeSimultaneouslyWithOtherGestureRecognizer:(UIGestureRecognizer*)otherGestureRecognizer {
return YES; //allows allow simultaneous recognition of gestures on this view
}
最佳答案
UITapGestureRecognizer
具有给定的行为,您刚刚在具体案例中对此进行了描述。
您所追求的可以通过像 UIPanGestureRecognizer
这样的连续手势识别器来完成。
具体来说,连续的手势识别器操作方法将根据手势识别器经过的状态接收一系列调用。
其中一个状态是 UIGestureRecognizerStateCancelled
,因此您可以管理它来检测手势何时被取消,就像您的情况一样,并通过移除突出显示来相应地采取行动。另一方面,当您的操作在 UIGestureRecognizerStateBegan
状态下被调用时,您会突出显示该按钮。
你的操作方法应该是这样的:
- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {
if (recognizer.state == UIGestureRecognizerStateBegan) {
...
} else if (recognizer.state == UIGestureRecognizerStateCancelled) {
...
}
}
另一种方法是创建您自己的手势识别器子类,您可以在其中处理 touchesBegan:/touchesMoved:/touchesEnded:
方法以满足您的需要。
如果你看一下UIGestureRecognizer reference你会发现很多信息。
关于ios - 关于 UIGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19410461/
我知道触摸事件可以传递给点击 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
我是一名优秀的程序员,十分优秀!