在iOS中设置屏幕上和屏幕下视图的动画

在iOS中设置屏幕上和屏幕下视图的动画,ios,xcode,uiviewanimation,Ios,Xcode,Uiviewanimation,我正在尝试创建显示给用户的数据列表。当他们单击“下一步”或“上一步”按钮,或在scrollview上滑动时,视图应从屏幕左向右或从右向左转换,具体取决于他们按下的按钮或滑动方向。我让它工作,除了视图在整个屏幕上滑动(意味着它在按钮顶部滑动) 下面是执行转换的代码。我的滚动视图只是一个普通的老视图,但是它在页面的中间,它的坐标是(4054,24240311),所以我希望它在280消失,在40重新出现。正如我所说,它当前在0时进入屏幕,在320时退出屏幕(在正常的纵向模式下) 我真的希望它能像iPh

我正在尝试创建显示给用户的数据列表。当他们单击“下一步”或“上一步”按钮,或在scrollview上滑动时,视图应从屏幕左向右或从右向左转换,具体取决于他们按下的按钮或滑动方向。我让它工作,除了视图在整个屏幕上滑动(意味着它在按钮顶部滑动)

下面是执行转换的代码。我的滚动视图只是一个普通的老视图,但是它在页面的中间,它的坐标是(4054,24240311),所以我希望它在280消失,在40重新出现。正如我所说,它当前在0时进入屏幕,在320时退出屏幕(在正常的纵向模式下)

我真的希望它能像iPhone上的Kindle应用一样工作,用户可以向左或向右拖动视图以显示下一页。我已经考虑过了,可能会把它变成一个滚动视图。因此,上面的代码将我的scrollview滑动到屏幕上,在scrollview中,我只设置了一些标签和图像

//set the content of the screen
self.imageView.image = [UIImage imageNamed: @"image1.png"];
self.labelNumber.text = @"1";
self.labelText.text = @"Test";
我的一些初步想法是,我需要两个scrollview,我必须在它们之间转换,或者我应该制作一个非常宽的scrollview,并将下一个或上一个事实的数据放在左侧或右侧。但这两个似乎都不好,因为我必须在屏幕上有一堆复制控件、插座等


PS这是我第一次在这个网站上发帖。woot.

您需要创建一个新的空白UIView,它是滚动视图的超级视图,大小与滚动视图相同。然后你需要在这个新的超级视图中调用clipstobunds:YES

比如:

UIView *blankView = [[UIView alloc] initWithFrame:CGRectMake(40, 54, 240, 311)];
[newView setClipsToBounds:YES];
[scrollViewsParentView addSubview:blankView]

UIScrollView *yourScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 54, 311)];
[blankView addSubview:yourScrollView];
注意“yourScrollView”的坐标变化了吗?这是因为它的父对象现在是blankView

另外,我已经完成了您使用两个UIScrollView来显示它们之间的转换的确切想法。您有一个屏幕上(显示)的UIScrollView和一个屏幕外(不显示)的UIScrollView,然后执行动画以显示过渡。在这种情况下,它们将具有相同的父级(blankView)

您可能还希望签出以下UIView方法:

animateWithDuration:animations:
animateWithDuration:animations:completion:
animateWithDuration:delay:options:animations:completion:

希望这能回答你的问题。

是的,这很好。我开始玩的另一种方式是,我的视野是1600宽(或者无论屏幕宽度*5是多少。然后我连接到左右滑动,然后长按左右键以获得此视图。然后,此视图上的子视图位于左侧0、320、640等处。当我沿轴移动时,另一个视图将发挥作用。我在www.oplanner.net和商店中的iphone应用程序上进行了此操作,结果相当不错。)伊利。
animateWithDuration:animations:
animateWithDuration:animations:completion:
animateWithDuration:delay:options:animations:completion: