1.31号采集了一些网络的iOS教程,教程是基于Swift语言开讲的。博主现在在公司边做Android项目边维护iOS(OC开发)的项目。对于iOS开发还不是非常了解,目前处于学习状态,但是改项目对我来说还是很简单的,虽然有些地方不懂但是有度娘在也轻松搞定。自吹一下,本人6年开发经验,看OC和SWIFT还是很轻松的,因为语言都差不多是相通的,思想更不用多说,肯定是一样的喽!因为语言都是人设计的嘛,除了反人类的语法,编程思路还是一样的。废话不多说,上例子!
在网上看到有人说,Swipe手势可以通过快捷代码添加,就是像C++那样Left|Right,因为Swipe本身的方向是一个整型的枚举,不过我试了下,以下代码编译不过。
// // ViewController.swift import UIKit class ViewController: UIViewController, UIActionSheetDelegate { @IBOutlet var im: UIImageView! var lastScaleFactor : CGFloat! = 1 //放大、缩小 var netRotation : CGFloat = 1;//旋转 var netTranslation : CGPoint!//平移 var images : NSArray = ["meinv1.jpg","mv2.jpg","mv3.jpg","mv4.jpg","mv5.jpg","mv6.jpg"]// 图片数组 var imageIndex : Int = 0 //数组下标 required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) netTranslation = CGPoint(x: 0, y: 0) } override func viewDidLoad() { super.viewDidLoad() var tapGesture = UITapGestureRecognizer(target: self, action: "handleTapGesture:") //设置手势点击数,双击:点2下 tapGesture.numberOfTapsRequired = 2 self.view.addGestureRecognizer(tapGesture) //手势为捏的姿势:按住option按钮配合鼠标来做这个动作在虚拟器上 var pinchGesture = UIPinchGestureRecognizer(target: self, action: "handlePinchGesture:") self.view.addGestureRecognizer(pinchGesture) //旋转手势:按住option按钮配合鼠标来做这个动作在虚拟器上 var rotateGesture = UIRotationGestureRecognizer(target: self, action: "handleRotateGesture:") self.view.addGestureRecognizer(rotateGesture) //拖手势 var panGesture = UIPanGestureRecognizer(target: self, action: "handlePanGesture:") // self.view.addGestureRecognizer(panGesture) //划动手势 //右划 var swipeGesture = UISwipeGestureRecognizer(target: self, action: "handleSwipeGesture:") self.view.addGestureRecognizer(swipeGesture) //左划 var swipeLeftGesture = UISwipeGestureRecognizer(target: self, action: "handleSwipeGesture:") swipeLeftGesture.direction = UISwipeGestureRecognizerDirection.Left //不设置是右 self.view.addGestureRecognizer(swipeLeftGesture) //长按手势 var longpressGesutre = UILongPressGestureRecognizer(target: self, action: "handleLongpressGesture:") //长按时间为1秒 longpressGesutre.minimumPressDuration = 1 //允许15秒运动 longpressGesutre.allowableMovement = 15 //所需触摸1次 longpressGesutre.numberOfTouchesRequired = 1 self.view.addGestureRecognizer(longpressGesutre) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } //双击屏幕时会调用此方法,放大和缩小图片 func handleTapGesture(sender: UITapGestureRecognizer){ //判断imageView的内容模式是否是UIViewContentModeScaleAspectFit,该模式是原比例,按照图片原时比例显示大小 if im.contentMode == UIViewContentMode.ScaleAspectFit{ //把imageView模式改成UIViewContentModeCenter,按照图片原先的大小显示中心的一部分在imageView im.contentMode = UIViewContentMode.Center }else{ im.contentMode = UIViewContentMode.ScaleAspectFit } } //捏的手势,使图片放大和缩小,捏的动作是一个连续的动作 func handlePinchGesture(sender: UIPinchGestureRecognizer){ var factor = sender.scale if factor > 1{ //图片放大 im.transform = CGAffineTransformMakeScale(lastScaleFactor+factor-1, lastScaleFactor+factor-1) }else{ //缩小 im.transform = CGAffineTransformMakeScale(lastScaleFactor*factor, lastScaleFactor*factor) } //状态是否结束,如果结束保存数据 if sender.state == UIGestureRecognizerState.Ended{ if factor > 1{ lastScaleFactor = lastScaleFactor + factor - 1 }else{ lastScaleFactor = lastScaleFactor * factor } } } //旋转手势 func handleRotateGesture(sender: UIRotationGestureRecognizer){ //浮点类型,得到sender的旋转度数 var rotation : CGFloat = sender.rotation //旋转角度CGAffineTransformMakeRotation,改变图像角度 im.transform = CGAffineTransformMakeRotation(rotation+netRotation) //状态结束,保存数据 if sender.state == UIGestureRecognizerState.Ended{ netRotation += rotation } } //拖手势 func handlePanGesture(sender: UIPanGestureRecognizer){ //得到拖的过程中的xy坐标 var translation : CGPoint = sender.translationInView(im) //平移图片CGAffineTransformMakeTranslation im.transform = CGAffineTransformMakeTranslation(netTranslation.x+translation.x, netTranslation.y+translation.y) if sender.state == UIGestureRecognizerState.Ended{ netTranslation.x += translation.x netTranslation.y += translation.y } } //划动手势 func handleSwipeGesture(sender: UISwipeGestureRecognizer){ //划动的方向 var direction = sender.direction //判断是上下左右 switch (direction){ case UISwipeGestureRecognizerDirection.Left: println("Left") imageIndex++;//下标++ break case UISwipeGestureRecognizerDirection.Right: println("Right") imageIndex--;//下标-- break case UISwipeGestureRecognizerDirection.Up: println("Up") break case UISwipeGestureRecognizerDirection.Down: println("Down") break default: break; } //得到不越界不<0的下标 imageIndex = imageIndex < 0 ? images.count-1:imageIndex%images.count //imageView显示图片 im.image = UIImage(named: images[imageIndex] as String) } //长按手势 func handleLongpressGesture(sender : UILongPressGestureRecognizer){ if sender.state == UIGestureRecognizerState.Began{ //创建警告 var actionSheet = UIActionSheet(title: "Image options", delegate: self, cancelButtonTitle: "cancel", destructiveButtonTitle: "ok", otherButtonTitles: "other") actionSheet.showInView(self.view) } } }
在网上看到有人说,Swipe手势可以通过快捷代码添加,就是像C++那样Left|Right,因为Swipe本身的方向是一个整型的枚举,不过我试了下,以下代码编译不过。
swipeLeftGesture.direction = UISwipeGestureRecognizerDirection.Left|UISwipeGestureRecognizerDirection.Right
收藏的用户(0) X
正在加载信息~
推荐阅读
最新回复 (0)
站点信息
- 文章2305
- 用户1336
- 访客11455720
每日一句
Talent without working hard is nothing.
没有努力,天份不代表什么。
没有努力,天份不代表什么。
MySQL 数据库优化
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de
免ROOT实现模拟点击任意位置
Mobaxterm终端神器
CreateProcessW要注意的细节问题
Autonomous NAT Traversal
【教程】win10 彻底卸载edge浏览器
eclipse工程基于Xposed的一个简单Hook
排名前5的开源在线机器学习
Mac OS最简单及(Karabiner)快捷键设置
发一款C++编写的麻将
VMware NAT端口映射外网访问虚拟机linux
独家发布最新可用My-AutoPost——wordpress 采集器
新会员