ios - 如何在 ios 中制作流畅的滑动动画

标签 ios objective-c animation swipe gesture

我想制作流畅的滑动动画。我只想当用户仅从右边框或左边框滑动页面时才可以滑动。页面中间滑动应该是不可能的。滑动应该可以从左到右和从右到左。

我尝试了很多滑动动画示例代码或演示代码。但这不是我想要的。我想要这样的动画https://itunes.apple.com/in/app/clear-tasks-to-do-list/id493136154?mt=8

在这个应用程序中,当我们触摸右边框时,它会平滑滑动。请指导我做这个动画。提前致谢。

最佳答案

抱歉回复晚了。刚看到这个问题。

如果您希望从边缘进行滑动操作,请在主视图的远端(左侧和右侧)创建 2 个 subview ,然后指定宽度为 30 或 40。

enter image description here

我相信您还有 2 个从左右弹出的 View 。因此,为了做到这一点,您需要在主视图的顶部添加 2 个 View 。 现在对于左 View ,将其连接到主视图的右侧水平空间约束设置为小于主视图的 (-1)x 宽度的值。对于右 View ,将其连接到主视图的右水平空间约束设置为大于主视图宽度的值,使两个 View 都在主视图之外

X stands for a value greater than or equal to the mainview's width

X代表大于或等于主视图宽度的值

添加两个 NSLayoutConstraint 变量作为 IBOutlet 保存这 2 个值。

NSLayoutConstraint *leftViewHorizondalRightPadding;
NSLayoutConstraint *rightViewHorizondalRightPadding;

现在将 UISwipeGestures 添加到这些 subview (以橙色表示)。

UISwipeGestureRecognizer *leftToRightSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
    [leftToRightSwipe setDirection:UISwipeGestureRecognizerDirectionRight];
    [self.leftSubview addGestureRecognizer:leftToRightSwipe];

 UISwipeGestureRecognizer *rightToLeftSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
    [rightToLeftSwipe setDirection:UISwipeGestureRecognizerDirectionLeft];
    [self.rightSubview addGestureRecognizer:rightToLeftSwipe];

///Now in the swipe handler distinguish the swipe actions
-(void)handleSwipe:(UISwipeGestureRecognizer *)recognizer {
    NSLog(@"Swipe received.");
    if (recognizer.direction == UISwipeGestureRecognizerDirectionRight) {
    //It's leftToRight
       leftViewHorizondalRightPadding.constant = 0;
       [UIView animateWithDuration:1
           animations:^{
           [self.view layoutIfNeeded]; 
       }];

    }
    else {
    //It's rightToLeft
       rightViewHorizondalRightPadding.constant = 0;
       [UIView animateWithDuration:1
           animations:^{
           [self.view layoutIfNeeded]; 
       }];

    }
}

这将制作从左到右和从右到左的滑动动画。

希望这有帮助..

关于ios - 如何在 ios 中制作流畅的滑动动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23148104/

相关文章:

ios - 从 NSData 中提取文件名

ios - WKWebView 在模拟器上保持空白(允许任意加载)

ios - 使用 Parse 进行异步处理时遇到问题

swift - 带有视频的 SCNPlane 可在模拟器上播放,但无法在设备上播放

html - 使用 css 和 html 的按钮下划线动画

iphone - 核心数据中的子查询

iOS:数据 session 与临时 session

ios - 将 NSData 转换为 unsigned int 32 数组

Javascript 可滚动/可擦洗动画 w/svg.js

python - 将 Pygame 模拟保存为 mp4 文件