当用户按下向前或向后按钮时,我正在尝试为我的视图创建一种滑出式滑入式动画。 我把第一个视图滑出来就好了,但是第二个视图不会滑入。
这是我的代码:
[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值中,对用户来说是隐藏的。
我已经尝试过改变转换,但这没有做任何事情。
是什么导致这种情况?
答案 0 :(得分: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) {
}];
这是为了向您展示这两个视图如何滑入和滑出。 您必须根据需要调整视图的框架。