gpt4 book ai didi

ios - 在 iOS 的屏幕上和屏幕外动画 View

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:54:23 25 4
gpt4 key购买 nike

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

这是执行转换的代码。我的 ScrollView 只是一个普通的旧 View ,但它位于页面中间,它的坐标是 (40,54,240,311) 所以我希望它在 280 处消失并在 40 处重新出现。就像我说的,它目前出现在在 0 处屏幕并在 320 处退出屏幕(在正常纵向模式下)。

//Animate the scrollview across the screen
CATransition* animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromLeft];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[self.scrollView layer] addAnimation:animation forKey:nil];

我真的很希望它能像 iPhone 上的 Kindle 应用程序一样工作,用户可以在其中向左或向右拖动 View 以显示下一页。我已经研究过是否可以将其设为 ScrollView 。所以上面的代码在屏幕上滑动我的 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 并将下一个或上一个事实的数据放在左侧或右侧。但是这两个似乎都很糟糕,因为我必须在屏幕上有一堆重复的控件、 socket 等。

PS 这是我第一次在这个网站上发帖。哇哦。

最佳答案

您需要创建一个新的空白 UIView,它是 ScrollView 的 super View ,并且与 ScrollView 的大小相同。然后你需要在这个新的 super View 上调用 clipsToBounds: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:

希望这能回答您的问题。

关于ios - 在 iOS 的屏幕上和屏幕外动画 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8508221/

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