- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我在 UIViewController 的 viewDidLoad 中有以下代码:
UIScreenEdgePanGestureRecognizer *edgeRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleRightEdgeSwipe:)];
edgeRecognizer.edges = UIRectEdgeRight;
[self.view addGestureRecognizer:edgeRecognizer];
目的是在检测到右边缘手势时触发 View 滑入。
-(void)handleRightEdgeSwipe:(UIGestureRecognizer*)sender
{
NSLog(@"Showing Side Bar");
[self presentPanelViewController:_lightPanelViewController withDirection:MCPanelAnimationDirectionRight];
}
但我看到“handleRightEdgeSwipe”函数被触发了多次 - 有时触发了 5 次,这使得应该平滑动画的侧边栏 View 滑入并闪烁多次。
(注意:我尝试触发 View 从 UIButton 出现,它工作正常)。
为什么多次触发右边缘手势,如何解决?
最佳答案
如前所述,当 GestureRecognizer 的状态发生变化时,UIScreenEdgePanGestureRecognizer 会多次调用您的操作。请参阅 UIGestureRecognizer 类的 state 属性的文档。所以,在你的情况下,我相信你正在寻找的答案是检查状态是否“结束”。因此:
-(void)handleRightEdgeSwipe:(UIGestureRecognizer*)sender
{
if (sender.state == UIGestureRecognizerStateEnded)
{
NSLog(@"Showing Side Bar");
[self presentPanelViewController:_lightPanelViewController withDirection:MCPanelAnimationDirectionRight];
}
}
关于ios - UIScreenEdgePanGestureRecognizer 触发多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26244690/
我正在尝试为我的 View Controller 实现屏幕边缘平移手势。但问题是,如果尝试为两条边(UIRectEdge.left、UIRectEdge.right)添加边缘平移手势,如 let sc
我有一个 UIScreenEdgePanGestureRecognizer(作为自定义弹出手势的一部分)在 85-90% 的时间内都有效。有 10-15% 的情况是无论您滑动得多么完美,它都不会触发。
我已经成功地实现了一个 UIScreenEdgePanGestureRecognizer,并且我的方法被触发了,但是手势识别器的“边缘”属性永久设置为 UIRectEdgeNone,尽管正确的手势被识
我为屏幕边缘(左)边缘添加了一个平移手势识别器。它在纵向模式下运行良好,但在横向模式下不起作用。 override init() { super.init() //Pan Gestur
问题 我无法使用 UIScreenEdgePanGestureRecognizer 在自定义键盘扩展中识别从屏幕右边缘或左边缘的边缘滑动。我创建了一个新项目来测试这个。其他 UIGestureReco
我遇到了一个问题,我定义了一个 UIScreenEdgePanGestureRecognizer 来检测出现在我设备右边缘的平移手势,但该手势偶尔会被识别: 我有以下代码: _swipeInLeft
我使用以下代码在带有 UIScreenEdgePanGestureRecognizer 的 WebView 中前后移动: class FirstViewController: UIViewContro
我想设置一个 EdgePanGesture 以在用户从左侧或右侧滑动时更改我的 ViewController。只有一个方向,它完美地工作: func addingEdgePanDetection()
我在 UIViewController 的 viewDidLoad 中有以下代码: UIScreenEdgePanGestureRecognizer *edgeRecognizer = [[UIScr
我的应用程序有这个问题。正如您在下面的 Storyboard 屏幕上看到的那样,根 VC (ContainerViewController) 有一个 UIScrollView,并且在这个 Scroll
我有一个带有 3 个 View 的水平 ScrollView 。第一个 View (最左侧)是 map View 。我想要的功能是用户只能通过从最右侧边缘滑动来进入第二个 View ,因为我希望其他手
我正在使用 UIScreenEdgePanGestureRecognizer 来更改 View ,并且在其中一个 View 中,我可以使用 UILongPressGestureRecognizer (
当您在设置 UIScreenEdgePanGestureRecognizer 时指定 UIRectEdgeRight 等时,我试图弄清楚实际的点值是多少。 看来我不能简单地 NSLog 关于 UISc
我需要一个分页的 UIScrollView,它以 UIScreenEdgePanGestureRecognizer 的方式检测屏幕边缘的平移,而不是像 UIPanGestureRecognizer 那
我正在尝试实现一个位于主视图左侧的幻灯片菜单。通过在左侧添加一个 UIScreenEdgePanGestureRecognizer,我执行了 Slide-In-Part。这真的很棒,但现在我当然也应该
我正在尝试使用 PKRevealController,它在前 View Controller 上带有 UIPanGestureRecognizer,因此平移会显示左 View Controller 。
我的申请有问题。我想使用 UIScreenEdgePanGestureRecognizer 实现一些边缘屏幕手势。它在装有 iOS 9 的设备上运行良好,但在 iOS 8 上则不然。识别器已添加到我的
这是否可能使 UIScreenEdgePanGestureRecognizer 处理来自顶部(或底部)边缘的事件? UIScreenEdgePanGestureRecognizer *gestureR
我想将 UIScreenEdgePanGestureRecognizer 添加到 UITableView,以便我可以从右侧边缘滑动以转到 Controller 层次结构中的下一个屏幕。 这工作正常,除
我正在为侧边栏使用 SWRevealViewController,我必须为我的上一个和下一个故事使用滑动,为侧边栏使用边缘平移。 我使用 UIScreenEdgePanGestureRecognize
我是一名优秀的程序员,十分优秀!