关于手势拖动图标移动图标(附带滑动效果)
2015-04-27 12:58
232 查看
- (void)handlePan:(UIPanGestureRecognizer *)recognizer
{
CGRect rx = [
UIScreen mainScreen ].bounds;
CGPoint translation = [recognizer
translationInView:self.view];
recognizer.view.center =
CGPointMake(recognizer.view.center.x + translation.x,
recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointZero
inView:self.view];
if (recognizer.state ==
UIGestureRecognizerStateEnded) {
CGPoint velocity = [recognizer
velocityInView:backgroundScrollView];
CGFloat magnitude =
sqrtf((velocity.x * velocity.x) + (velocity.y * velocity.y));
CGFloat slideMult = magnitude /
200;
NSLog(@"magnitude: %f, slideMult: %f", magnitude, slideMult);
float slideFactor =
0.1 * slideMult; // Increase for more of a slide
CGPoint finalPoint =
CGPointMake(recognizer.view.center.x + (velocity.x * slideFactor),
recognizer.view.center.y + (velocity.y * slideFactor));
//x >
控件宽*1/2 && x < screen.size.width -
控件宽*1/2,y同理
finalPoint.x =
MIN(MAX(finalPoint.x,
10), rx.size.width -
10);
finalPoint.y =
MIN(MAX(finalPoint.y,
64 + 10), rx.size.height -
49 - 10);
[UIView
animateWithDuration:0.05*slideMult
delay:0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
recognizer.view.center = finalPoint;
} completion:nil];
}
}
{
CGRect rx = [
UIScreen mainScreen ].bounds;
CGPoint translation = [recognizer
translationInView:self.view];
recognizer.view.center =
CGPointMake(recognizer.view.center.x + translation.x,
recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointZero
inView:self.view];
if (recognizer.state ==
UIGestureRecognizerStateEnded) {
CGPoint velocity = [recognizer
velocityInView:backgroundScrollView];
CGFloat magnitude =
sqrtf((velocity.x * velocity.x) + (velocity.y * velocity.y));
CGFloat slideMult = magnitude /
200;
NSLog(@"magnitude: %f, slideMult: %f", magnitude, slideMult);
float slideFactor =
0.1 * slideMult; // Increase for more of a slide
CGPoint finalPoint =
CGPointMake(recognizer.view.center.x + (velocity.x * slideFactor),
recognizer.view.center.y + (velocity.y * slideFactor));
//x >
控件宽*1/2 && x < screen.size.width -
控件宽*1/2,y同理
finalPoint.x =
MIN(MAX(finalPoint.x,
10), rx.size.width -
10);
finalPoint.y =
MIN(MAX(finalPoint.y,
64 + 10), rx.size.height -
49 - 10);
[UIView
animateWithDuration:0.05*slideMult
delay:0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
recognizer.view.center = finalPoint;
} completion:nil];
}
}
相关文章推荐
- slides 带手势的图片滑动效果(用于移动终端)
- 手势检测实现相册的左右滑动(并加上移动与旋转的特效) 首先,activity_main.xml里,使用ViewFlipper组件(可使用动画控制多个组件之间的切换效果) <?xml version="
- 关于动态加载的数据实现单选可取消的效果 并且附带 ScrollView滑动到指定位置
- slides 带手势的图片滑动效果(用于移动终端)
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
- Android进阶:实现android系统自带查看照片动画效果 类似Gallery手势滑动
- quick-cocos2d-x(lua) 拖动精灵使其在屏幕移动的效果实现
- 手势滑动实时效果
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- Android 布局手势缩放,可滑动查看,实现类似Imgview图片缩放效果
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
- jQuery仿360导航页图标拖动排序效果代码分享
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
- android手势滑动——左右滑动效果实现
- Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- 在网页上实现图标的漂浮移动效果
- android手势操作滑动效果触摸屏事件处理