swift 中手势的使用
swift 中手势的使用
/**点击手势*/
func tapGestureDemo() {
//建立手势识别器
let gesture = UITapGestureRecognizer(target: self, action: "viewTap:")
//附加识别器到视图
self.view1.addGestureRecognizer(gesture)
}
/**缩放手势*/
func pinchGestureDemo() {
//建立手势识别器
let gesture = UIPinchGestureRecognizer(target: self, action: "viewPinch:")
//附加识别器到视图
self.view1.addGestureRecognizer(gesture)
}
/**旋转手势*/
func rotationGestureDemo() {
//建立手势识别器
let gesture = UIRotationGestureRecognizer(target: self, action: "viewRotation:")
//附加识别器到视图
self.view1.addGestureRecognizer(gesture)
}
/**滑动手势*/
func swipeGestureDemo() {
//建立手势识别器
let gesture = UISwipeGestureRecognizer(target: self, action: "viewSwipe:")
//附加识别器到视图
self.view1.addGestureRecognizer(gesture)
}
/**平移手势*/
func panGestureDemo() {
//建立手势识别器
let gesture = UIPanGestureRecognizer(target: self, action: "viewPan:")
//附加识别器到视图
self.view1.addGestureRecognizer(gesture)
}
/**长按手势*/
func LongPressGestureDemo() {
//建立手势识别器
let gesture = UILongPressGestureRecognizer(target: self, action: "viewLongPress:")
//附加识别器到视图
self.view1.addGestureRecognizer(gesture)
}
/**自定义手势*/
func custonGestureDemo() {
//建立手势识别器
let gesture = CustomGestureRecognizer(target: self, action: "viewCustom:")
//附加识别器到视图
self.view1.addGestureRecognizer(gesture)
}
//-----------------------手势action事件---------------------------
/**点击事件*/
@IBAction func viewTap(sender: UITapGestureRecognizer) {
print("clicked...")
}
/**缩放事件*/
func viewPinch(sender: UIPinchGestureRecognizer) {
print("pinch...")
let _width = view1.bounds.width
let _height = view1.bounds.height
view1.bounds.size = CGSize(width: _width * sender.scale, height: _height * sender.scale)
}
/**旋转事件*/
func viewRotation(sender: UIRotationGestureRecognizer) {
view1.transform = CGAffineTransformMakeRotation(sender.rotation)
}
/**滑动事件*/
var offsetX: CGFloat = 0
func viewSwipe(sender: UISwipeGestureRecognizer) {
if sender.direction == UISwipeGestureRecognizerDirection.Right {
//每次向右平移20
offsetX += 20
view1.transform = CGAffineTransformMakeTranslation(offsetX, 0)
}
}
/**平移事件*/
func viewPan(sender: UIPanGestureRecognizer) {
let _transX = sender.translationInView(view1).x
let _transY = sender.translationInView(view1).y
view1.transform = CGAffineTransformMakeTranslation(_transX, _transY)
}
/**长按事件*/
func viewLongPress(sender: UILongPressGestureRecognizer) {
print("long pressed....")
}
func viewCustom(sender: CustomGestureRecognizer) {
print("custom gesture...")
}
swift 中手势的使用的更多相关文章
- 27.怎样在Swift中声明typedef?
在OC中,我们经常会用typedef关键字来声明Block,例如: /** * 通用的空闭包类型,无参数,无返回值 */ typedef void (^GofVoidBlock)(void); 在Sw ...
- swift 中关于open ,public ,fileprivate,private ,internal,修饰的说明
关于 swift 中的open ,public ,fileprivate,private, internal的区别 以下按照修饰关键字的访问约束范围 从约束的限定范围大到小的排序进行说明 open,p ...
- 阿里巴巴最新开源项目 - [HandyJSON] 在Swift中优雅地处理JSON
项目名称:HandyJSON 项目地址:https://github.com/alibaba/handyjson 背景 JSON是移动端开发常用的应用层数据交换协议.最常见的场景便是,客户端向服务端发 ...
- Swift中的可选链与内存管理(干货系列)
干货之前:补充一下可选链(optional chain) class A { var p: B? } class B { var p: C? } class C { func cm() -> S ...
- 在Swift中实现单例方法
在写Swift的单例方法之前可以温习一下Objective-C中单例的写法: + (instancetype)sharedSingleton{ static id instance; static d ...
- [翻译]理解Swift中的Optional
原文出处:Understanding Optionals in Swift 苹果新的Swift编程语言带来了一些新的技巧,能使软件开发比以往更方便.更安全.然而,一个很有力的特性Optional,在你 ...
- 窥探Swift之使用Web浏览器编译Swift代码以及Swift中的泛型
有的小伙伴会问:博主,没有Mac怎么学Swift语言呢,我想学Swift,但前提得买个Mac.非也,非也.如果你想了解或者初步学习Swift语言的话,你可以登录这个网站:http://swiftstu ...
- swift 中指针的使用UnsafeMutablePointer
在swift中已经弱化了指针的使用,可以这么使用 let s: NSRange = NSMakeRange(, ) let at = UnsafeMutablePointer<NSRange&g ...
- swift 中数据类型那个的转换
在swift中关于数据类型的转换,如果参数是可选类型? 那么打印或者转换的结果 会带有Optional 字样,,
随机推荐
- postgres中几个复杂的sql语句
postgres中几个复杂的sql语句 需求一 需要获取一个问题列表,这个问题列表的排序方式是分为两个部分,第一部分是一个已有的数组[0,579489,579482,579453,561983,561 ...
- HTML5矢量实现文件上传进度条
在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...
- JS魔法堂:初探传说中的setImmediate函数
一.前言 由于JavaScript程序为单线程,因此在执行长时间的操作时(如循环和递归操作)到导致UI线程长期被阻塞,无法响应用户操作请求(如点击按钮等),让用户体验大打折扣.于是想到将一个长时间 ...
- 检测WCF服务是否在线(动态执行WCF服务)
在我们的系统里有多个wcf支撑.但是有的时候会莫名的停止,于是今天写了一个服务,定时去检测其他wcf服务是否在线.那么最简单的办法自然是引用其他wcf服务让vs给我们自动生成clientProxy然后 ...
- SQL--工作中遇到的
--递归查询产品分类 WITH cte AS ( SELECT * FROM syn_Categories WHERE id = $CategoryID$ UNION ALL SELECT syn_C ...
- 使用ASP.NET MVC局部视图避免JS拼接HTML,编写易于维护的HTML页面
以前使用ASP.NET WebForm开发时,喜欢使用Repeater控件嵌套的方式开发前台页面,这样就不用JS拼接HTML或者后台拼接HTML了,写出的HTML页面美观.简捷.易于维护,由于不用JS ...
- LINQ的Expression与delegate表达式
Linq的delegate表达式,Insus.NET觉得它封装得好,让开发时简化了很多代码,而且容易阅读与检索. 比如,我们需要计算优惠给客户金额,打85%折,可以这样写: using System; ...
- 【UWP】不通过异常判断文件是否存在
从WP升到WinRT(Win8/WP8.1/UWP)后所有的文件操作都变成StorageFile和StorageFolder的方式,但是微软并没有提供判断文件是否存在的方法通常的做法我们可以通过下面方 ...
- C#中考虑为大对象使用弱引用
1.无论怎样尽力,我们总是会使用到某些需要大量内存的数据,而这些内存并不需要经常访问.或许你需要从一个大文件中查找某个特定的值,或者算法需要一个较大的查询表.这时,你也许会采用2中不太好做法:第一种是 ...
- Firemonkey 控件设定字型属性及颜色
将控件 StyledSettings 的勾取消(如此才能自定样式及字型,如果勾选则依 Style 而定). 设定 TextSettings 里的 Font 属性. 使用代码寫法: CheckBox1. ...