iOS实现拖拽View跟随手指浮动效果

本文实例为大家分享了iOS实现拖拽View跟随手指浮动的具体代码,供大家参考,具体内容如下

效果图:

1.自定义要跟随手指浮动的那个View

//
// OrangeView.m
// 拖拽View跟随手指浮动
//
// Created by llkj on 2017/8/16.
// Copyright © 2017年 LayneCheung. All rights reserved.
//

#import "OrangeView.h"

@implementation OrangeView

//当开始触摸屏幕的时候调用
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

 NSLog(@"%s", __func__);
}

//触摸时开始移动时调用(移动时会持续调用)
//NSSet:无序
//NSArray:有序
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

 NSLog(@"%s", __func__);

 UITouch *touch = [touches anyObject];

 //求偏移量 = 手指当前点的X - 手指上一个点的X
 CGPoint currentPoint = [touch locationInView:self];
 CGPoint prePoint = [touch previousLocationInView:self];

 NSLog(@"ccurrentPoint = %@", NSStringFromCGPoint(currentPoint));
 NSLog(@"prePiont = %@", NSStringFromCGPoint(prePoint));

 CGFloat offSetX = currentPoint.x - prePoint.x;
 CGFloat offSetY = currentPoint.y - prePoint.y;

 //平移
 self.transform = CGAffineTransformTranslate(self.transform, offSetX, offSetY);
}

//当手指离开屏幕时调用
-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

 NSLog(@"%s", __func__);
}

//当发生系统事件时就会调用该方法(电话打入,自动关机)
- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

 NSLog(@"%s", __func__);
}
@end

2.创建自定义的View

在storyboard中拖一个View绑定他的类为OrangeView;
或者代码创建手动添加到控制器的View上去;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android ReboundScrollView仿IOS拖拽回弹效果

    初衷: 其实github上有很多这种ScrollView的项目,但是不得不说功能太多太乱了,我就只是想要一个简单效果的ScrollView,另外监听下滑动距离而已,想想还是自己写了个. 这里先说下思路吧,如果不愿意看的朋友可以直接跳过这一步,看下面的代码: Android 原生的ScrollView是不支持拉出屏幕外,并且也没有回弹效果的,用户友好度却不不太好,不知道为什么不那么设计. 我想做的事情正如上面所述: 1.希望能拉出屏幕外 2.松手后希望控件回弹 我的思路是对ScrollView的子

  • 浅谈iOS11新特性:新增拖拽交互体验

    一.引言 在使用PC进行操作时,你一定遇到过这样的场景,可以将图片直接拖入聊天软件进行发送,可以将文档.音乐.视频文件等文件拖入相应应用程序直接进行使用.这种拖拽操作交互极大的方便了电脑的使用.在iOS11中,你可以在iPhone或iPad上构建这种交互体验! 说在前面的话: 拖拽操作在iPad上是支持跨应用程序的,你可以从一个应用中拖取项目,通过Home键回到主界面并且打开另一个应用程序,然后将被拖拽的项目传递给这个应用程序中.在iPhone上,拖拽操作只支持当前应用程序内,你可以将某个元素从

  • iOS开发UICollectionView实现拖拽效果

    一.介绍 iOS9提供API实现单元格排序功能,使用UICollectionView及其代理方法.iOS9之后有自带方法可以实现该效果,只需添加长按手势,实现手势方法和调用iOS9的API交换数据,iOS9之前需要自己写方法实现这效果,除了要添加长按手势,这里还需要利用截图替换原理,手动计算移动位置来处理视图交换和数据交换. 二.方法和步骤 1.创建工程项目和视图控制器,如下图 2.声明对象和设置代理和数据源代理 @interface ViewController ()<UICollection

  • iOS实现百度地图拖拽后更新位置以及反编码

    前言 最近在开发中遇到了百度地图的开发,功能类似于微信中的发送位置,拖拽从新定位,以及反编码,列表附近的位置.分析出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 效果图: 百度地图拖拽更新位置.gif 实现思路 思路就是将一个UIImageView固定在地图中间,每次更新位置,给UIImageView添加动画即可. 代码如下: #import "FTBasicController.h" typedef void (^SelectBlock) (NSString *addr

  • IOS Xib控件拖拽与页面跳转实例

    之前一直都是用代码写UI,Xib使用比较少,今天做个简单的总结,也算重新学习下. 如下图一,右上角的红色圈圈,用来分屏用的,可以切换成2个屏幕,一个展示Xib的UI,一个展示代码,如下所示.主要为了控件与代码之间的连线用. 1. 给UIlabel ,UItextField 等控件关联IBOutlet 选中一个控件然后右键,然后出现一个黑色的框(如图2,红色圈起来的),然后选中Referencing Outlets ,按住ctrl建,拖到代码区域,就可以生成 @property (strong,n

  • IOS 实现3D 浮动效果动画

    涉及到的技术点 CATransform3DRotate 转换坐标系 整体视图的层级结构 tvOSCardView cardImageView cardParallaxView 转换坐标系的代码 CGFloat xFactor = MIN(1, MAX(-1, (touchPoint.x - (self.bounds.size.width / 2)) / (self.bounds.size.width / 2))); CGFloat yFactor = MIN(1, MAX(-1, (touchP

  • iOS实现拖拽View跟随手指浮动效果

    本文实例为大家分享了iOS实现拖拽View跟随手指浮动的具体代码,供大家参考,具体内容如下 效果图: 1.自定义要跟随手指浮动的那个View // // OrangeView.m // 拖拽View跟随手指浮动 // // Created by llkj on 2017/8/16. // Copyright © 2017年 LayneCheung. All rights reserved. // #import "OrangeView.h" @implementation Orange

  • Android中View跟随手指移动效果

    最近做了一个项目中,其中遇到这样的需求要求图片移动到手指触碰的地方.具体实现代码如下所示: package com.example.plane; import Android.app.Activity; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.Display; import android.view.KeyEvent; import android.view.Menu; i

  • Android中View跟随手指滑动效果的实例代码

    本文讲述了Android中View跟随手指滑动效果的实例代码.分享给大家供大家参考,具体如下: 1.android View 主要6种滑动方法,分别是 layout() offsetLeftAndRight()和offsetTopAndBottom() LayoutParams scrollBy()和 scrollTo() Scroller 动画 2.实现效果图 3.自定义中使用layout()方法实习view的滑动 public class MoveView extends View { pr

  • Android实现View拖拽跟随手指移动效果

    今天想实现这个功能,但是网上搜索代码,都是利用setPadding,setMargin 等方法去实现的,这在Android 4.0 以前是没问题的,但是,android 4.0 后系统已经提供了更简单的方法给我们用了,就是setTranslationX() 和setTranslationY() .这两个是View的属性方法.现在我就用这两个方法实现一个View可以跟着手指移动拖拽的效果.代码非常非常简单: public class DragView extends TextView { floa

  • Android自定义圆形View实现小球跟随手指移动效果

    本文实例为大家分享了Android实现小球跟随手指移动效果的具体代码,供大家参考,具体内容如下 一. 需求功能 手指在屏幕上滑动,红色的小球始终跟随手指移动. 实现的思路: 1)自定义View,在onDraw中画圆作为小球: 2)重写自定义View的onTouchEvent方法,记录触屏坐标,用新的坐标重新绘制小球: 3)在布局中引用自定义View布局,运行程序,实现跟随手指移动效果. 关键技术点 自定义View应用.触摸事件处理.canvas绘图.Paint应用. 实现步骤 1. 新建一个工程

  • Android自定义View圆形和拖动圆、跟随手指拖动效果

    单纯的自定义一个圆非常简单 只需要几步就完成 拖动圆添加实现触摸事件即可 我在第一次自定义View圆遇到的几个Bug: 1.拖动圆的话在xml里面设置的自定义圆的宽和高是它能活动的空间的大小 不是圆控件的大小 如果你定义了100dp 拖动它的时候超过100dp这个距离这个圆就会看不见 就像下面这样 如果想活动于整个屏幕直接给宽和高match_parent属性就好了 2.我在定义充满属性match_parent的时候运行会报错,什么方法都用了就是不行,耐心等待过一会就好了-有可能是studio没来

  • Android 自定义可拖拽View界面渲染刷新后不会自动回到起始位置

    以自定义ImageView为例: /** * 可拖拽ImageView * Created by admin on 2017/2/21. */ public class FloatingImageView extends ImageView{ public FloatingImageView(Context context) { super(context); } public FloatingImageView(Context context, AttributeSet attrs) { su

  • Android Activity通用悬浮可拖拽View封装的思路详解

    目录 1,背景 2,思路 2.1,封装通用的基础悬浮View 2.1,继承通用View 2.3,设计view的控制器 2.4,view的添加和使用 1,背景 在开发中总会遇到一个可拖拽的悬浮View,不管是在开发中,还是在线上,都时长有这样的控件,我们通常遇到这种情况,经常需要自己封装,需要耗费时间,我这边封装了一个可以通用的悬浮可拖拽View,这样使用的时候,只需要传入自己要设计的样式和位置既可 2,思路 2.1,封装通用的基础悬浮View 设计通用的父View 1,传入的childView是

  • Android实现拖动小球跟随手指移动效果

    Android拖动小球跟随手指移动Demo,供大家参考,具体内容如下 1.使用的知识点有自定义View,利用Canvas画球: 2.使用触摸时间来操作: 效果图: 代码如下: 1.自定义view: public class DrawView extends View { public float currentX = 50; public float currentY = 50; public DrawView(Context context) { super(context); } publi

  • jquery拖拽排序简单实现方法(效果增强版)

    本文实例讲述了jquery拖拽排序简单实现方法.分享给大家供大家参考,具体如下: 运行效果截图如下: 原来没有新建动作,分析代码后发现很容易增强~~ 代码如下: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>测试的拖拽功能</title

随机推荐