我有一个视图控制器具有以下层次结构:
UIViewController
|
| -view
| -presentView(UIView)
| -stagedView(UIView)
| -UIToolbar
我正在使用该transitionFromView:toView:duration:options:completion:方法动画页面卷曲,以便在presentView和之间交换stagedView.当前和分段视图仅覆盖屏幕的大部分,底部有一个UIToolbar.当我使用UIViewAnimationOptionTransitionCurlUp转换时,它会动画整个根视图(包括工具栏),而不仅仅是涉及的两个视图.
[UIView transitionFromView:self.presentView
toView:self.stagedView
duration:0.5f
options:UIViewAnimationOptionTransitionCurlUp
completion:^ (BOOL finished) {
if (finished) {
// cleanup code
}}];
Run Code Online (Sandbox Code Playgroud)
继苹果公司的建议,我通过把后续调用链接的UIView动画-animationWithDuration:animation:中的completion:另一个呼叫的块aanimateWithDuration:animation:completion:,像这样:
[UIView animateWithDuration:scaleDuration delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
// Scale the controllers' views down.
self.view.transform = CGAffineTransformScale(self.view.transform, 0.8, 0.8);
} completion:^(BOOL finished) {
// Transition to the new view and push on the new view controller.
[UIView transitionWithView:self.view duration:1 options:UIViewAnimationOptionCurveLinear | UIViewAnimationOptionTransitionFlipFromLeft animations:^{
[self pushViewController:viewController animated:NO];
} completion:^(BOOL finished) {
[UIView animateWithDuration:scaleDuration delay:0 options:UIViewAnimationOptionCurveLinear animations:
^{
// Scale back to the original size.
self.view.transform = CGAffineTransformScale(self.view.transform, 1.25, 1.25);
} completion:nil];
}];
}];
Run Code Online (Sandbox Code Playgroud)
动画都执行正确的顺序,但它们之间存在微小的延迟,特别是在-transitionWithView:duration:options:animations:completion:通话之前.如何平滑动画步骤之间的过渡?
cocoa-touch core-animation uiview uinavigationcontroller uiviewanimationtransition
我正在使用以下代码进行页面卷曲动画
[UIView beginAnimations:@"yourAnim" context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:yourView cache:cacheFlag];
...
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
是否有可能像iphone/ipod上的maps.app一样制作半卷曲动画?
任何想法如何产生类似的效果?
谢谢
好的,所以我非常喜欢pagecurl效果,只有一个问题,当从应用程序内发送反馈电子邮件时,partialPageCurl会覆盖取消按钮和邮件的大部分发送按钮.按钮仍然有效,但用户不会看到它们.有没有办法让partialPageCurl到fullPageCurl,它几乎完全关闭屏幕?提前致谢!目前我正在推动这个观点.
- (IBAction)HelpClicked{
MoreHelp *More = [[MoreHelp alloc] initWithNibName:nil bundle:nil];
More.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:More animated:YES];
[More release];
}
Run Code Online (Sandbox Code Playgroud) 在iOS文档中,不鼓励使用beginAnimation-commitAnimation.因此,对于动画和过渡,有一些新方法可以使用^块.但是,当我使用transitionWithView:duration:options:animations:completion方法我没有过渡效果.所以如果我写:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp
forView:self.view cache:YES];
firstView.hidden = YES;
secondView.hidden = NO;
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
它的工作原理,但如果我这样做的话
[UIView transitionWithView:self.view duration:1.0 options
UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp
animations:^{
firstView.hidden = YES;
secondView.hidden = NO;
} completion:NULL
];
Run Code Online (Sandbox Code Playgroud)
我没有任何过渡效果.我错过了什么?
这是我在stackoverflow上的第一篇文章.我是iOS开发人员新手,我不是母语为英语的人,所以我会尽力解释我的问题.
问题:
我已经在我的AppDelegate窗口中添加了两个视图,我想使用以下方法从一个窗口切换到另一个窗口:
UIView transitionFromView:toView:
Run Code Online (Sandbox Code Playgroud)
第一个视图(MainScreenView)有自己的ViewController.在MainScreenView .xib文件中,我有一个按钮,其动作调用我的AppDelegate中实现的方法"goShow".在那个方法中,我UIView transitionFromView:toView:用来转换到第二个视图.到目前为止一切正常.我的第二个视图(一个scrollview)在我的AppDelegate中以编程方式声明,并且里面有一堆图片(picturesViewController),并且在这些视图之上有一个UIPinchGestureRecognizer.
我正在使用手势识别器来翻回我的MainScreenView.这就是问题所在.当我在滚动视图上执行捏合手势时,会MainScreenView.view立即显示在动画之前,因此翻转动画看起来不对.
我正在使用的代码是:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
mainScreen = [[MainScreenViewController alloc] initWithNibName:@"MainScreenViewController" bundle: [NSBundle mainBundle]];
CGRect frame = self.window.bounds;
int pageCount = 10;
scrollView = [[UIScrollView alloc] initWithFrame:frame];
scrollView.contentSize = CGSizeMake(320*pageCount, 480);
scrollView.pagingEnabled = YES;
scrollView.showsHorizontalScrollIndicator = FALSE;
scrollView.showsVerticalScrollIndicator = FALSE;
scrollView.delegate = self;
[...] 'While' adding pictures to de scrollView
UIPinchGestureRecognizer *twoFingerPinch = [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(goBackToMain)] autorelease];
[scrollView addGestureRecognizer:twoFingerPinch];
[self.window addSubview: scrollView]; …Run Code Online (Sandbox Code Playgroud) cocoa-touch uiviewcontroller uiviewanimationtransition ios appdelegate
我有一个viewController,它有一个tableView和一个mapView,只有一个是可见的.我还有一个带有分段控件的工具栏,带有两个按钮(列表和地图)
如何在表格视图和地图视图之间切换?并且重要的是工具栏将保持锁定而不用视图制作动画.
iphone objective-c uiview uianimation uiviewanimationtransition
想要实现类似于在facebook和许多其他应用程序中使用的视图控制器转换,附加快照.它需要使用CoreAnimation框架还是可以在工具包中使用?

core-animation uiviewcontroller uiviewanimationtransition ios ios5
在我的iOS应用程序中,我需要更改应用程序.so之间的窗口的rootviewController,当我更改我的rootviewcontroller dyncamically它在更改之前轻弹视图.但我想要的是在rootviewcontroller更改时给出平滑过渡.
我试过以下但不是我想要的过渡.
[UIView transitionWithView:self.window
duration:.8
options:UIViewAnimationOptionTransitionCurlUp
animations:^{
self.window.rootViewController = tabBarControllerMain;
[self.window makeKeyAndVisible];
}
completion:NULL];
Run Code Online (Sandbox Code Playgroud)
我想要特定的过渡,如navigationcontroller pushview过渡.
任何机构能否让我知道如何实现这一目标?
我完全透明的桌子和导航控制器.因此,在推送新视图控制器时,动画被破坏了.因此,我添加了自己的自定义推送转换,该转换获取下一个视图控制器的快照并为其设置动画.
这不再适用于iOS10.snapshotView(afterScreenUpdates: true)返回纯白色的视图.我也尝试通过图形上下文使用旧方法获取快照,但它也不起作用.
如何确保在snapshotView之前加载推送到导航控制器的视图?或者有更好的方法来解决这个问题吗?不幸的是,这对我来说是一个突破性的变化.
uiviewcontroller uinavigationcontroller uiviewanimationtransition ios ios10
ios ×5
iphone ×5
cocoa-touch ×2
objective-c ×2
uiview ×2
appdelegate ×1
ios10 ×1
ios4 ×1
ios5 ×1
page-curl ×1
uianimation ×1
uikit ×1