0

当用户按下前进或后退按钮时,我正在尝试为我的视图创建一种滑出滑入动作。我将第一个视图滑出就好了,但第二个视图就不会滑入。

这是我的代码:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelay:0.1];
[UIView setAnimationDuration:0.7];

UIView *currentView = [[contentScrollView subviews] objectAtIndex:0];
currentView.center = CGPointMake(contentScrollView.frame.size.width+contentScrollView.frame.size.width/2, currentView.center.y);

UIView *newView = [[contentScrollView subviews] objectAtIndex:1];
newView.center = CGPointMake(newView.center.x+newView.frame.size.width, newView.center.y);

[UIView commitAnimations];

我真的不明白问题是什么,它应该工作。但是 currentView 只是滑出,而 newView 仍然在 -x 值中,对用户隐藏。

我已经尝试更改为转换,但这并没有做任何事情。

什么可能导致这种情况?

4

1 回答 1

0

试试这个代码(经过测试):复制并粘贴它以查看它的实际效果,并根据您的需要调整视图的框架。

UIView *viewOne = [[UIView alloc] initWithFrame:(CGRect){{0, 0}, 200, 200}]; //currentView
UIView *viewTwo = [[UIView alloc] initWithFrame:(CGRect){{200, 0}, 200, 200}]; //newView
viewOne.backgroundColor = [UIColor lightGrayColor];
viewTwo.backgroundColor = [UIColor darkGrayColor];
[self addSubview:viewOne];
[self addSubview:viewTwo];

[UIView animateWithDuration:5.0f delay:0.0f options:UIViewAnimationOptionCurveEaseInOut animations:^
 {
     viewOne.frame = (CGRect){{300, 0}, 200, 200};
     viewTwo.frame = (CGRect){{-100, 0}, 200, 200};

 } completion:^(BOOL finished) {


 }];

这是向您展示这两个视图如何滑入和滑出。您必须根据需要调整视图的框架。

于 2013-10-08T16:17:41.647 回答