gpt4 book ai didi

objective-c - 如何为 UIView 设置动画,使其向右离开屏幕,然后从左侧重新出现

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

我有一个 View 包含在我的应用程序的主视图中(屏幕中间的一个正方形)。我编写了以下代码,如果您向左滑动 View ,它会将 View 从屏幕向右滑动:

- (IBAction)swipeLeft:(id)sender
{
CGRect initCardViewFrame = self.cardView.frame;
CGRect movedCardToRightViewFrame = CGRectMake(initCardViewFrame.origin.x + 1000, initCardViewFrame.origin.y, initCardViewFrame.size.width, initCardViewFrame.size.height);

[UIView animateWithDuration:0.7
animations:^{self.cardView.frame = movedCardToRightViewFrame;}
completion:nil];
}

效果很好,但是我想扩展代码,一旦方 block 离开屏幕右侧,它就会从左侧返回到中间。我不太确定如何在窗口左侧“重新绘制”它,然后将它滑回中间。我试过重做帧,但动画只显示动画 block 中的最后一帧移动。我假设我需要将 View 推离屏幕,然后在屏幕左侧的外侧重新绘制它,然后在中间滑动它。当然,除非有更直观的方法。

更新:

我已经在下面回答了这个问题,但我不禁认为有更好的方法可以做到这一点,而无需将 UIView 动画相互嵌套。这是解决这个问题的唯一方法吗?

最佳答案

我最终在“完成”参数中添加了以下代码:

completion:^(BOOL finished)
{
self.cardView.frame = moveCardToLeftViewFrame;

[UIView animateWithDuration:0.4
animations:^{self.cardView.frame = initCardViewFrame;}
completion:nil];
}];

注意* moveCardToLeftViewFrame 是一个 CGRect,它将 View 放置在可见窗口的左侧。所以它向右滑动后,它被放置在屏幕的左侧,然后再滑回中间。

关于objective-c - 如何为 UIView 设置动画,使其向右离开屏幕,然后从左侧重新出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8640685/

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