我想制作流畅的滑动动画。我只想当用户仅从右边框或左边框滑动页面时才可以滑动。页面中间滑动应该是不可能的。滑动应该可以从左到右和从右到左。
我尝试了很多滑动动画示例代码或演示代码。但这不是我想要的。我想要这样的动画https://itunes.apple.com/in/app/clear-tasks-to-do-list/id493136154?mt=8
在这个应用程序中,当我们触摸右边框时,它会平滑滑动。请指导我做这个动画。提前致谢。
最佳答案
抱歉回复晚了。刚看到这个问题。
如果您希望从边缘进行滑动操作,请在主视图的远端(左侧和右侧)创建 2 个 subview ,然后指定宽度为 30 或 40。
我相信您还有 2 个从左右弹出的 View 。因此,为了做到这一点,您需要在主视图的顶部添加 2 个 View 。 现在对于左 View ,将其连接到主视图的右侧水平空间约束设置为小于主视图的 (-1)x 宽度的值。对于右 View ,将其连接到主视图的右水平空间约束设置为大于主视图宽度的值,使两个 View 都在主视图之外
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/