Swift - 使用UI Dynamics给UIKit组件添加移动吸附行为

UI Dynamics是UIKit的一个新组成部分,它向iOS中的视图提供了与物理学有关的功能和动画。可以让你向视图中引入力和物理属性,可以让你的视图弹跳,舞动,受重力影响等等。

下面通过样例,演示使用UISnapBehavior给UIImageView添加移动吸附行为。

效果图如下:(点击屏幕,苹果会动态移动到点击的位置,移动时还有倾斜和缓动效果)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!

    

    var dynamicAnimator = UIDynamicAnimator()

    var snap:UISnapBehavior?

    

    override func viewDidLoad() {

        super.viewDidLoad()

        

        dynamicAnimator = UIDynamicAnimator(referenceView: self.view)

    }

    

    @IBAction func tapped(sender:AnyObject){

        //获取点击位置

        let tap = sender as! UITapGestureRecognizer

        let point = tap.locationInView(self.view)

        

        //删除之前的吸附,添加一个新的

        if self.snap != nil {

            self.dynamicAnimator.removeBehavior(self.snap!)

        }

        self.snap = UISnapBehavior(item: self.imageView, snapToPoint: point)

        self.dynamicAnimator.addBehavior(self.snap!)

    }

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

    }

}

原文出自:www.hangge.com  转载请保留原文链接:http://www.hangge.com/blog/cache/detail_870.html

时间: 2024-10-05 06:13:38

Swift - 使用UI Dynamics给UIKit组件添加移动吸附行为的相关文章

Swift - 使用UI Dynamics给UIKit组件添加重力和碰撞行为

UI Dynamics是UIKit的一个新组成部分,它向iOS中的视图提供了与物理学有关的功能和动画.可以让你向视图中引入力和物理属性,可以让你的视图弹跳,舞动,受重力影响等等. 下面通过样例,演示使用UIGravityBehavior和UICollisionBehavior给UIImageView添加重力和碰撞行为. 效果图如下:(苹果自上而下做自由落体,当掉到底部的时候还有碰撞效果.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

从零开始,搭建博客系统MVC5+EF6搭建框架(4)上,前后台页面布局页面实现,介绍使用的UI框架以及JS组件

一.博客系统进度回顾以及页面设计 1.1页面设计说明 紧接前面基础基本完成了框架搭建,现在开始设计页面,前台页面设计我是模仿我博客园的风格来设计的,后台是常规的左右布局风格. 1.2前台页面风格 主页面: 技术博客风格: 详情页风格: 详情页留言风格: 1.3后台风格: 表格风格: 博客发布风格: 以上看到的系统页面是目前系统完成的风格,以后页面设计都参考这些页面风格. 二.使用前端web框架以及插件说明 2.1选择前端web框架,我找了很多框架,以前学过自学过bootstrap觉得对于没有前端

IOS8开发视频教程之:基于Swift实战UI从入门到精通

IOS8开发视频教程之:基于Swift实战UI从入门到精通(5大项目.深入解析拉手团购项目)课程讲师:朱启文课程分类:IOS适合人群:初级课时数量:81课时用到技术:Swift.iOS8涉及项目:移动的图片案例.图片展示案例.汤姆猫案例.拉手团购案例.九宫格案例咨询QQ:1840215592 一.iOS8开发基于Swift实战UI初级课程移动的图片案例(共9课,完成9课)通过该案例,让大家掌握UIButton控件与UIImage区别使用,掌握IB连线的各类方法 tag使用,transform/f

PyQt4转换ui为py文件需添加如下代码才可执行

1)转换ui为py 命令行进入ui文件所在文件夹,输入pyuic4 ui_name.ui > py_name.py即可 或新建ui2py.bat文件,写入: @echo off @cd /d "%~dp0" pyuic4 %1 > %~n1.py 将ui文件拖入批处理即可,生成在ui文件所在目录,文件名为py_name.py 2)转换后的py文件还不能运行,需要可视化操作才可运行 具体见帖:http://www.cnblogs.com/doudongchun/p/36947

文顶顶 iOS开发UI篇—在UIImageView中添加按钮以及Tag的参数说明

ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明 一.tag参数 一个视图通常都只有一个父视图,多个子视图,在开发中可以通过使用子视图的tag来取出对应的子视图.方法为Viewwithtag: 提示点:在xib中如果想要通过tag参数获取对应的控件(属性),不要把tag的参数设置为0,因为xib中所有的对象默认tag都为0,设置为0取不到对象. 二.ImageView中添加按钮(1)ImageView和Button的比较 Button按钮的内部可以放置多张图片(4),而Ima

extjs组件添加事件监听的三种方式 http://blog.sina.com.cn/s/blog_48d7f92901011cfn.html

extjs对组件添加监听的三种方式 在定义组件的配置时设置 如代码中所示: Java代码 xtype : 'textarea', name : 'dataSetField', labelSeparator:'', fieldLabel:'', hideLabel: true, allowBlank: true, height: mainPanelHeight*0.8, anchor:'99%', listeners:{'blur':function(){ alert(1); }} 对组件变量通过

Unity 为自己组件添加公共方法

为什么需要跟你的组件添加公共方法呢? 留一条后路嘛,万一你那天想起要给全部的组件添加一个方法. 此时我只能告诉你慢慢修改吧累死你 子组件:A ,父组件:B继承方式:  A -> B –> MonoBehaviour.  此时你在B中写入方法(简单吧) using UnityEngine; using System.Collections; namespace MyNamespace { public class MyCompoment : MonoBehaviour { //公共方法 } }

新浪微博微组件添加到博客园中

弄了半天,终于搞定了.将微博放入博客园是一件多么让人兴奋的事情. 刚开始都压根不知道要怎么用,只能在新浪开发平台上各种倒腾.最后才发现原来这么简单. 1.登录新浪微博开放平台,点击常用引导栏下的微组件 2.在微博组件中,选择一个你希望用到的 3.进到微博小工具后选择 博客挂件 在这里值的说的是,我刚开始就一直在弄我的微博秀,但是代码复制到博客园后总是清除掉.后来发现,用这个只能注册申请,而我们也没有自己的网站什么,真心很麻烦,所以直接用博客组件把.方便,省事.嘿嘿... 4.选定你的博客类型 5

IOS开发UI基础—在UIImageView中添加按钮以及Tag的参数说明

ios开发UI基础-在ImageView中添加按钮以及Tag的参数说明 一.tag参数 一个视图通常都只有一个父视图,多个子视图,在开发中可以通过使用子视图的tag来取出对应的子视图.方法为Viewwithtag: 提示点:在xib中如果想要通过tag参数获取对应的控件(属性),不要把tag的参数设置为0,因为xib中所有的对象默认tag都为0,设置为0取不到对象. 二.ImageView中添加按钮(1)ImageView和Button的比较 Button按钮的内部可以放置多张图片(4),而Im