问题标签 [custom-transition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
358 浏览

ios7 - 是否可以在 iOS 7 自定义过渡中为约束设置动画

我在示例中似乎只能找到使用变换或正在修改框架。我错过了什么明显的东西吗?目前其他动画(淡入淡出)都工作正常,但是约束保持锁定在位置。

一个快速的代码片段:

0 投票
1 回答
77 浏览

ios - Interactive Transitions,Apple 是如何实现的?

我想知道 Apple 是如何实现其出色的自定义交互式过渡系统的,我认为创建类似的东西作为实验应该很有趣。

这是我对这个“问题”的看法。

开发人员创建了他需要的动画,UIView animationWithDuration这个动画被称为感谢animatedTransition

我的好奇心从这里开始。从这个定义出发,Apple 如何执行交互式过渡?

他们如何获取此函数中定义的动画并将其转换为交互式动画?

我想Apple使用了一些新的UIView Key-Frame Animations API,但我找不到一种方法来匹配在animatedTransition函数中编写的代码(可以是任何代码)并且是动画完成的任意百分比状态。

您对他们如何实现它有一些想法吗?

(请......不要像“你能在不知道它是如何工作的情况下使用这个 API 吗?”这样的小问题)。

0 投票
1 回答
294 浏览

ios - 在 iOS 7 中,随着客户 VC 转换,是否可以在 presentViewController 之后在屏幕上制作“fromviewcontroller”?

许多应用程序具有这样的功能,用户可以下拉一个视图,然后从其下方显示另一个视图。但是第一个视图仍然在底部可见。(例如 Facebook Paper 应用程序)。

如果另一个视图来自另一个视图控制器,是否可以通过使用 iOS 7 的自定义视图控制器转换 API 来实现?

在我的测试中,可以做“展示”部分,但“解雇”部分有问题。每当我们调用dismissViewController 时,甚至在调用transitioningDelegate 方法之前,“toViewController”都会接管全屏。

有谁更熟悉这个?谢谢 !

0 投票
1 回答
997 浏览

objective-c - 具有视差最佳实践的 UIViewControllers 之间的水平滑动

我目前面临一个挑战,我需要在页面之间实现滑动(类似于 Yahoo Digest 和 Yahoo 应用程序),还需要每个UIViewController.

我正在权衡几种方法,不确定哪种方法最有效、最快速、最可靠,最重要的是,感觉真的真的很顺利。


什么方法是实现此类功能的最佳实践?

1)UIScrollView分页(如这里

2)UIPageViewControllerUIPageViewControllerTransitionStyleScroll

3) iOS 7 自定义UIViewController交互过渡。

4)UICollectionView带有水平滚动和分页

考虑到我需要视差效果,我需要一个能够很好地满足此要求的解决方案,并且不需要繁重的自定义代码。

0 投票
1 回答
152 浏览

ios - iOS - 带有自定义转换的“平移”导航流程

我正在尝试使用 iOS7 的自定义转换,以便让用户通过一种“平移”效果在视图控制器之间导航。

如图所示:

在此处输入图像描述

我需要背景模式也在 vc 的范围之外继续,这样当用户从 vc1 移动到 vc2 时,vcs 之间的所有可见背景也会转换。

任何提示都非常感谢。

谢谢,丹

0 投票
1 回答
12896 浏览

ios - 如何使用 iOS 7 自定义转换在顶部呈现半模态视图控制器

我将如何在主视图控制器的顶部呈现“半视图”控制器?

要求: - 提供第二个视图控制器,它滑过主视图控制器的顶部。- 第二个视图控制器应该只显示超过一半的主视图控制器 - 主视图控制器应该在第二个视图控制器后面保持可见(透明背景,下面不显示黑色) - 第二个视图控制器应该使用类似于模态垂直覆盖的动画进行动画处理,或者iOS 7 自定义过渡 - 当第二个视图控制器处于活动状态时,用户仍然可以与主视图控制器上的按钮进行交互(即第二个视图控制器不覆盖整个主视图控制器)r - 第二个视图控制器有自己的复杂逻辑(不能简单视图) - 故事板、Segues、仅限 iOS 7 - 仅限 iPhone,而不是 iPad。

我尝试过使用模态视图控制器,但这不允许与主视图控制器进行交互。有人可以提供一个如何使用 iOS7 自定义转换或其他方法执行此操作的示例。

0 投票
2 回答
331 浏览

iphone - 如何使用交互式过渡呈现视图控制器

我的要求是当我从屏幕右侧滑动时(视图控制器 A)然后需要使用交互式转换推送到下一个视图控制器(视图控制器 B)。当我从屏幕左侧滑动时(视图控制器 B)也使用相同的关闭机制它使用交互式转换关闭控制器。如何以正确的方式实现它。我已经使用交互式转换实现了关闭视图控制器,但无法使用交互式转换实现推送到视图控制器

这些是我的交互式过渡部分的代码行

0 投票
3 回答
5460 浏览

ios - UIPercentDrivenInteractiveTransition 完成后会产生无关的动画

我正在使用带有UIPercentDrivenInteractiveTransition. 手势识别器成功调用交互控制器的updateInteractiveTransition. 同样,当我调用交互控制器的finishInteractiveTransition.

但是,有时我会在最后得到一些额外的分散注意力的动画(它似乎重复了动画的后半部分)。通过相当简单的动画,我很少在 iPhone 5 上看到这种症状(尽管我在使用速度较慢的笔记本电脑时经常在模拟器上看到它)。如果我使动画的计算成本更高(例如,大量阴影、多个视图为不同方向设置动画等),则设备上出现此问题的频率会增加。

除了简化动画(我承认无论如何我都应该这样做)和/或编写我自己的交互控制器之外,还有其他人看到这个问题并想出了解决方案吗?该UIPercentDrivenInteractiveTransition方法具有一定的优雅性,但我对它的行为异常不确定这一事实感到不安。其他人见过这种行为吗?有谁知道其他解决方案?

为了说明效果,请参见下图。注意第二个场景,红色视图,当动画结束时,似乎第二次重复了动画的后半部分。

动画不对

此动画由以下人员生成:

  • 反复调用updateInteractiveTransition,从 0% 到 40% 进行更新;

  • 暂时暂停(这样您就可以区分交互式过渡和由 产生的完成动画finishInteractiveTransition);

  • 然后调用finishInteractiveTransition完成动画;和

  • 动画控制器的动画completion块调用completeTransition,transitionContext以清理所有内容。

做一些诊断,似乎是这最后一步触发了那个无关的动画。动画完成时会调用动画控制器的完成块,但只要我调用completeTransition,它有时会重复动画的最后一点(尤其是在使用复杂动画时)。


我认为这无关紧要,但这是我用于配置导航控制器以执行交互式转换的代码:

PushAnimator的是:

请注意,当我将日志记录语句放在我调用的位置时completeTransition,我可以看到在我调用之后发生了这种无关的动画completeTransition(即使动画当时真的完成了)。这表明额外的动画可能是调用completeTransition.

仅供参考,我用手势识别器做了这个实验:

我也通过手动调用updateInteractiveTransitionand来做到这一点finishInteractiveTransition(从等式中消除手势识别器),它仍然表现出这种奇怪的行为:

最重要的是,我得出的结论是,这是一个UIPercentDrivenInteractiveTransition与复杂动画无关的问题。我可以通过简化它们(例如快照和动画快照视图)来最小化问题。我还怀疑我可以通过不使用UIPercentDrivenInteractiveTransition和编写我自己的交互控制器来解决这个问题,它会自己做动画,而不是尝试插入animationWithDuration块。

但我想知道是否有人想出了任何其他技巧来使用UIPercentDrivenInteractiveTransition复杂的动画。

0 投票
2 回答
359 浏览

objective-c - 在自定义交互式转换上跟随触摸/使用手势识别器翻译

我为导航控制器创建了一个自定义转换,当用户向上平移时,下一个控制器的视图显示在下面,因为当前控制器的视图向上移动。我希望该视图通过触摸来移动(就好像它在触摸点处粘在手指上),但我不知道如何将该平移从平移手势识别器传递到实现 UIViewControllerAnimatedTransitioning 的对象。好吧,我这样做了,但是我无法从 [UIView animateWithDuration ... ] 块内部访问它(似乎该块执行了一次,我认为它将作为完成更改的百分比执行)。我怎样才能做到这一点?

换个方式问这个问题,如果你在 ios7 中使用照片应用程序,当你在看一张照片时,用两根手指触摸并捏/移动,你会看到它在跟随手指(移动)。有任何示例代码吗?

0 投票
1 回答
157 浏览

objective-c - 第一个控制器中的隐藏导航栏在自定义转换期间出现

我正在从控制器 A 到控制器 B 进行自定义推送转换。在控制器 A 中,导航栏是隐藏的,但在控制器 B 中是可见的。当我进行自定义转换时,导航栏会立即出现在转换的开头。我怎样才能防止这种情况?

以下是一些代码片段:

在控制器 A 中,导航栏使用以下代码隐藏:

此外,在控制器 A 中,我使用以下代码开始自定义推送转换:

自定义过渡一开始,我就看到了控制器 B 的导航栏!以下是我如何获取自定义动画代码的快照以进行转换: