Iphone 可能的话,用另一个UIImageView推送一个UIImageView?
是否可以平移一个UIImageView,当它与另一个UIImageView的框架相交时,让另一个UIImageView在不经过它的情况下推动另一个UIImageView?我希望这是有道理的 如果可能的话,你能给我一些关于如何实施的想法吗 我想会是这样的 如果框架在x/y轴上从左或右与框架相交,则让另一个框架以与推动框架相同的距离沿同一方向移动。虽然这种逻辑对我来说有些道理,但我不确定如何在代码中实现它Iphone 可能的话,用另一个UIImageView推送一个UIImageView?,iphone,ios,ipad,uiimageview,uigesturerecognizer,Iphone,Ios,Ipad,Uiimageview,Uigesturerecognizer,是否可以平移一个UIImageView,当它与另一个UIImageView的框架相交时,让另一个UIImageView在不经过它的情况下推动另一个UIImageView?我希望这是有道理的 如果可能的话,你能给我一些关于如何实施的想法吗 我想会是这样的 如果框架在x/y轴上从左或右与框架相交,则让另一个框架以与推动框架相同的距离沿同一方向移动。虽然这种逻辑对我来说有些道理,但我不确定如何在代码中实现它 我真的很感激你能提供的任何建议。听起来你最好在精灵、交叉点和一些基本物理方面使用Cocos2D
我真的很感激你能提供的任何建议。听起来你最好在精灵、交叉点和一些基本物理方面使用Cocos2D…听起来你最好在精灵、交叉点和一些基本物理方面使用CoCoCoS2D…所以,你只关心左/右平移 假设您有2个UIImageView,a和b,作为其他UIView的子视图,并定义为某个类的类成员 通过创建UIPanGestureRecognizer的实例并使用addGestureRecognizer方法将其添加到每个UIImageView,您可以获得检测每个视图上的平移手势(拖动触摸)的帮助: 创建每个UIPangestureRecognitor时,需要指定一个选择器来接收手势事件。比方说它叫didMove: 下面是一些示例代码:
- (void) didMove:(UIPanGestureRecognizer*)recognizer {
UIView* view = [recognizer view];
// Remember our UIImageViews are class members called, a & b
//
UIView* otherView = view == a ? b : a;
if (recognizer.state == UIGestureRecognizerStateBegin
|| recognizer.state == UIGestureRecognizerStateChanged) {
// Moving left will have a negative x, moving right positive
//
CGPoint translation = [recognizer translationInView:view.superview];
view.center = CGPointMake(view.center.x + translation.x, view.center.y);
// Reset so we always track the translation from the current view position
//
[recognizer setTranslation:CGPointZero inView:view.superview];
if (CGRectIntersectsRect(view.frame, otherView.frame)) {
// Translate by the same number of points to keep views in sync
//
otherView.center = CGPointMake(otherView.center.x + translation.x, otherView.center.y);
}
}
}
它可能并不完全是您所需要的,但它应该会给您一个很好的想法,如何可以做到这一点。所以,您只关心左/右平移 假设您有2个UIImageView,a和b,作为其他UIView的子视图,并定义为某个类的类成员 通过创建UIPanGestureRecognizer的实例并使用addGestureRecognizer方法将其添加到每个UIImageView,您可以获得检测每个视图上的平移手势(拖动触摸)的帮助: 创建每个UIPangestureRecognitor时,需要指定一个选择器来接收手势事件。比方说它叫didMove: 下面是一些示例代码:
- (void) didMove:(UIPanGestureRecognizer*)recognizer {
UIView* view = [recognizer view];
// Remember our UIImageViews are class members called, a & b
//
UIView* otherView = view == a ? b : a;
if (recognizer.state == UIGestureRecognizerStateBegin
|| recognizer.state == UIGestureRecognizerStateChanged) {
// Moving left will have a negative x, moving right positive
//
CGPoint translation = [recognizer translationInView:view.superview];
view.center = CGPointMake(view.center.x + translation.x, view.center.y);
// Reset so we always track the translation from the current view position
//
[recognizer setTranslation:CGPointZero inView:view.superview];
if (CGRectIntersectsRect(view.frame, otherView.frame)) {
// Translate by the same number of points to keep views in sync
//
otherView.center = CGPointMake(otherView.center.x + translation.x, otherView.center.y);
}
}
}
它可能并不完全是你所需要的,但它应该给你一个好主意如何可以做到这一点。你可以这样做 首先,创建UIImageView并为其指定UIImage 第二,当用户刷卡或做任何手势时,只需通过再次设置卡框来更改卡的坐标即可 因为你想让卡片滑开,你必须把x坐标改成负值,这样它才能从视图中滑开 上述重构imageview的代码应在UIView setAnimation方法组中给出,并具有所需的延迟 要实现推送效果,请在相同的代码动画块中调用一个方法,该方法创建一个新的imageview(与第一个imageview同名),并将其保留在视图之外。那超出了屏幕的宽度。(别忘了释放先前被推开的卡) 然后,再次为该imageview创建一个新帧,使其显示在屏幕中央……当上述三个代码步骤以延迟时间放入UIView或UIImageView的动画代码块中时,u将达到所需效果 希望这有帮助
快乐编码…你可以这样做 首先,创建UIImageView并为其指定UIImage 第二,当用户刷卡或做任何手势时,只需通过再次设置卡框来更改卡的坐标即可 因为你想让卡片滑开,你必须把x坐标改成负值,这样它才能从视图中滑开 上述重构imageview的代码应在UIView setAnimation方法组中给出,并具有所需的延迟 要实现推送效果,请在相同的代码动画块中调用一个方法,该方法创建一个新的imageview(与第一个imageview同名),并将其保留在视图之外。那超出了屏幕的宽度。(别忘了释放先前被推开的卡) 然后,再次为该imageview创建一个新帧,使其显示在屏幕中央……当上述三个代码步骤以延迟时间放入UIView或UIImageView的动画代码块中时,u将达到所需效果 希望这有帮助
快乐编码…如果不使用Cocos2D,此功能将很难实现?仅此而已,需要大量计算和自定义动画。这不是什么让人难以接受的想法。如果不使用Cocos2D,这个功能将很难实现?仅此而已,需要大量的计算和自定义动画。不是什么让人无法抗拒的想法是的。。。我基本上在寻找一种方法,根据平移手势的移动方向,使用一个UIImageView向左或向右滑动另一个UIImageView。你的意思是当用户滑动时,当前图像应该被下一个图像推到左侧?是的。。。我基本上是在寻找一种方法,根据平移手势的移动方向,使用一个UIImageView向左或向右滑动另一个UIImageView。你的意思是当用户滑动时,当前图像应该被下一个图像推到左侧?