gpt4 book ai didi

ios - UIView transitionFromView : toView: animation not working.

转载 作者:可可西里 更新时间:2023-11-01 03:59:42 27 4
gpt4 key购买 nike

这是我在 stackoverflow 上的第一篇文章。我是 iOS 开发新手,我的母语不是英语,所以我会尽力解释我的问题。

问题:

我已将两个 View 添加到我的 AppDelegate 窗口,我想使用以下方法从一个 View 翻转到另一个 View :

 UIView transitionFromView:toView:

第一个 View (MainScreenView) 有自己的 ViewController。在 MainScreenView .xib 文件上,我有一个按钮,其中包含一个调用在我的 AppDelegate 中实现的方法“goShow”的操作。在该方法中,我使用 UIView transitionFromView:toView: 转换到第二个 View 。到目前为止一切正常。我的第二个 View ( ScrollView )在我的 AppDelegate 中以编程方式声明,其中有一堆图片(picturesViewController),最上面有一个 UIPinchGestureRecognizer

我正在使用手势识别器返回到我的 MainScreenView。这就是问题所在。当我在 ScrollView 上做捏合手势时,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];
[scrollView setHidden:TRUE];
[self.window addSubview: mainScreen.view];

[self.window makeKeyAndVisible];
return YES;
}

-(void) goShow{

[UIView transitionFromView:mainScreen.view
toView:scrollView
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationOptionShowHideTransitionViews
completion:NULL];

[UIView commitAnimations];
}

-(void) goBackToMain {

[UIView transitionFromView:scrollView
toView:mainScreen.view
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationOptionShowHideTransitionViews
completion:NULL];

[UIView commitAnimations];
}

我正在使用显示/隐藏 View 而不是 addSubview/removeFromSuperView,因为我尝试添加和删除并在捏合手势中出现应用程序崩溃,这与动画失败的步骤完全相同。可能是同样的错误,但我找不到原因。任何帮助,将不胜感激。

谢谢。

好的。在 Adrian 的帮助下,这是解决我的问题的 UIPinchGesture 代码:

[...]

UIPinchGestureRecognizer *twoFingerPinch = [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(goBackToMain:)] autorelease];
[scrollView addGestureRecognizer:twoFingerPinch];


-(void)goBackToMain:(UIPinchGestureRecognizer *)recognizer {

if (recognizer.state == UIGestureRecognizerStateEnded)
{
[UIView transitionFromView:scrollView
toView:mainScreen.view
duration:0.4
options:UIViewAnimationOptionTransitionFlipFromRight | UIViewAnimationOptionShowHideTransitionViews
completion:nil];

[UIView commitAnimations];
}

最佳答案

首先,您不能将旧方法 beginAnimation commitAnimation 与新 block 方法 transitionFromView 组合。

其次,当使用 block 方法动画时,请确保您使用的容器(可能是 UIView)将成为您要切换的两个 View 的父级。如果没有容器,您将改为对整个 View 进行动画处理。确保容器与将切换的 subview 具有相同的大小。

示例:

    [container addSubView:frontView];    [container addSubView:backView];    [self.view addSubView:container];    [UIView transitionFromView:backView toView:frontView duration:0.5 options:UIViewAnimationOptionTransitionFlipFromRight completion:nil];

关于ios - UIView transitionFromView : toView: animation not working.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9456362/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com