- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个自定义控件,包含一行按钮,模仿标签栏。此控件在 UINavigationController
离开 Root View Controller 时滑出 View ,并在导航到 Root View Controller 时滑回。
在 iOS 7 中,UIScreenEdgePanGestureRecognizer
提供了滑动返回手势。因此,我正在修改我的自定义控件,以便滑动量对应于 UIScreenEdgePanGestureRecognizer
的翻译。
问题是,当用户释放触摸时,我如何判断 UINavigationController
将导航回或弹回原始 View ?
[self.interactivePopGestureRecognizer addTarget:self action:@selector(panningBack:)];
- (void) panningBack:(UIPanGestureRecognizer *)recognizer
{
// Snipped - Code that reads the recognizer translation and adjust custom control y position
if (recognizer.state == UIGestureRecognizerStateEnded)
{
// Question: Does it go back, or does it not?
// If it goes back, slide custom control into view
// Else slide custom control out of view
}
}
最佳答案
我知道这是一个相当古老的问题,所以答案可能对 OP 没有用,但可能对其他人有用。我昨天遇到了同样的问题,并且在 SO 和网络的其余部分进行了大量搜索,但没有真正找到任何东西。所以这是我用于类似问题的解决方案。这是在 navigationcontroller 委托(delegate)中实现的,但我想如果更适合您的需要,您可以在其他地方进行。
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
id<UIViewControllerTransitionCoordinator> tc = navigationController.topViewController.transitionCoordinator;
[tc notifyWhenInteractionEndsUsingBlock:^(id<UIViewControllerTransitionCoordinatorContext> context) {
NSLog(@"DONE!!!");
NSLog(@"Container View: %@", [context containerView]);
NSLog(@"From VC: %@", [context viewControllerForKey:UITransitionContextFromViewControllerKey]);
NSLog(@"To VC: %@", [context viewControllerForKey:UITransitionContextToViewControllerKey]);
NSLog(@"Initially Interactive: %i", [context initiallyInteractive]);
NSLog(@"Completion Curve: %d", [context completionCurve]);
NSLog(@"Is Animated: %i", [context isAnimated]);
NSLog(@"Is Cancelled: %i", [context isCancelled]);
NSLog(@"Is Interactive: %i", [context isInteractive]);
NSLog(@"Percent Complete: %f", [context percentComplete]);
NSLog(@"Presentation Style: %d", [context presentationStyle]);
NSLog(@"Transition Duration: %f", [context transitionDuration]);
}];
}
当用户抬起她的手指并且动画相当反转或完成时,这将触发。 [context isCancelled];
会告诉你它是反转的还是完成的。上下文对象中还有许多其他有用的信息可供使用。
关于iphone - 与 interactivePopGestureRecognizer 一起调整位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19024407/
默认的 interactivePopGestureRecognizer 仅当您在屏幕的左边缘从左向右滑动时才有效。我希望能够通过在屏幕上的任意位置滑动来执行此手势。 Reddit、Slack 和 Tw
在我的应用程序中,我有不同的 Controller 。当我将 controller1 推到导航 Controller 并向后滑动时,一切正常。但是,如果我将导航 controller1 插入 cont
我有一个嵌套在 UINavigationController 中的 View Controller . 我已经实现了 iOS 7 interactivePopGestureRecognizer 以使用
我想知道如何使用可见键盘滑动 ViewController? 在 iOS 7 中,我可以左右滑动 ViewController,但键盘保持不动。 简而言之,我想进入以下状态: 谢谢! 最佳答案 更新:
我的应用左下角有这个自定义后退按钮。当导航堆栈上没有更多的 View Controller 然后只有 Root View Controller 时,按钮向下过渡。现在我介绍了 iOS7 标准的“滑动弹
我的应用程序支持英语和阿拉伯语。 interactivePopGestureRecognizer 在使用英语时可以正常工作,即从左向右滑动时,它会弹出 viewController。但是当我使用阿拉伯
我已经实现了interactivePopGestureRecognizer。它过渡到上一页。但问题是,当转换发生时,如果当前 View Controller 中有一个 UIScrollView,它就会
我有一个 UIScrollView,其框架与包含的 View Controller 相同。 当 ScrollView 的缩放比例大于 1 时,从屏幕左侧 50% 开始从左向右滑动会导致 interac
我在同一个 UINavigationController 上有两个不同的 UIViewControllers。两者都包含一个 tableview。如果第一个 View Controller 上的一个单
在我的 UINavigationController 中,我检查它是否具有属性 interactivePopGestureRecognizer,然后再这样设置: class UINavigationC
我有一个自定义控件,包含一行按钮,模仿标签栏。此控件在 UINavigationController 离开 Root View Controller 时滑出 View ,并在导航到 Root View
我有一个被推送到导航堆栈的 UIViewController。我想扩展标准的 iOS7 交互式平移手势以将此 View Controller 弹出到默认 UIRectEdgeLeft 边界之外,以便用
我有像这张照片这样的屏幕。 HomeViewController 将推送到 maintabbar,一个 tabbar item 将推送到 detailScreen。为什么向后滑动不起作用。我认为这是I
我有一个应用程序,我需要在其中禁用 interactivePopGestureRecognizer,这样我的自定义幻灯片菜单就不会显示。我想我可能已经尝试了 SO 中提到的所有内容,但没有运气。我的
我需要在我的应用程序中禁用 interactivePopGestureRecognizer,我做到了 - (void)viewDidAppear:(BOOL)animated { [super
我正在尝试实现自定义 id 将一个特定的 View Controller 推送到导航 Controller 的导航堆栈时的对象。 但是,我发现这样做会阻止 UINavigation Controlle
如何检测我的 interactivePopGestureRecognizer 是否已完成并将返回(弹出)到先前的 View Controller 或 shift 是否不够。然后当前 View Cont
是否有一个干净的解决方案可以让 View Controller 上的回调或事件被 interactivePopGestureRecognizer 关闭(弹出)? 为了清楚起见,在该手势识别器弹出 Co
我的第一个问题,请温柔... 如果我使用 UIPageViewControllerTransitionStylePageCurl,但不能使用 UIPageViewControllerTransitio
我使用 UINavigationController 的默认实现和从左到右弹出的默认手势 (interactivePopGestureRecognizer)。我怎样才能让 interactivePop
我是一名优秀的程序员,十分优秀!