国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

IOS 開發之swift中手勢的實例詳解

2020-07-26 02:42:05
字體:
來源:轉載
供稿:網友

IOS 開發之swift中手勢的實例詳解

手勢操作主要包括如下幾類


手勢 屬性 說明
點擊 UITapGestureRecognizer numberOfTapsRequired:點擊的次數;numberOfTouchesRequired:點擊時有手指數量 設置屬性 numberOfTapsRequired 可以實現單擊,或雙擊的效果
滑動 UISwipeGestureRecognizer direction:滑動方向 direction 滑動方向分為上Up、下Down、左Left、右Right
拖動 UIPanGestureRecognizer 在拖動過程中,通過方法 translationInView 獲取拖動時的位移
長按 UILongPressGestureRecognizer minimumPressDuration:長按最少時間
旋轉 UIRotationGestureRecognizer
縮放 UIPinchGestureRecognizer

注意:手勢效果在實施過程中,存在幾種狀態:

* Began
* Ended
* Cancelled
* Failed
* Possible

手勢效果圖

代碼示例

// 點擊let label = UILabel(frame: CGRectMake(10.0, 10.0, (self.view.frame.size.width - 10.0 * 2), 60.0))self.view.addSubview(label)label.backgroundColor = UIColor.lightGrayColor()label.text = "手勢操作-單指單擊手勢";label.adjustsFontSizeToFitWidth = truelabel.textAlignment = .Center;// 添加手勢let tapRecognizer = UITapGestureRecognizer(target: self, action: Selector("tapClick:"))tapRecognizer.numberOfTapsRequired = 1tapRecognizer.numberOfTouchesRequired = 1label.userInteractionEnabled = truelabel.addGestureRecognizer(tapRecognizer)// 手勢響應方法func tapClick(recognizer:UITapGestureRecognizer){    let label:UILabel = recognizer.view as! UILabel    label.textColor = UIColor.redColor()}
// 滑動let label = UILabel(frame: CGRectMake(10.0, 10.0, (self.view.frame.size.width - 10.0 * 2), 60.0))self.view.addSubview(label)label.backgroundColor = UIColor.lightGrayColor()label.text = "手勢操作-左滑手勢";label.adjustsFontSizeToFitWidth = truelabel.textAlignment = .Center;// 添加手勢let swipeLeftRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipeLeftClick:"))swipeLeftRecognizer.direction = .LeftswipeLeftRecognizer.numberOfTouchesRequired = 1label.userInteractionEnabled = truelabel.addGestureRecognizer(swipeLeftRecognizer)// 手勢響應方法func swipeLeftClick(recognizer:UISwipeGestureRecognizer){    let label = recognizer.view    label!.backgroundColor = UIColor.orangeColor()}

// 拖動let label = UILabel(frame: CGRectMake(10.0, 10.0, 100.0, 100.0))self.view.addSubview(label)label.backgroundColor = UIColor.lightGrayColor()label.text = "手勢操作-拖動手勢";label.adjustsFontSizeToFitWidth = truelabel.textAlignment = .Center;// 添加手勢let panRecognizer = UIPanGestureRecognizer(target: self, action: Selector("panClick:"))label.userInteractionEnabled = truelabel.addGestureRecognizer(panRecognizer)var pointValue:CGPoint! = CGPointZero // 移動// 手勢響應方法func panClick(recognizer:UIPanGestureRecognizer){    let label:UILabel = recognizer.view as! UILabel    let point = recognizer.translationInView(label)    print("pan point = /(point)")    // 移動    label.transform = CGAffineTransformMakeTranslation(point.x + self.pointValue.x, point.y + self.pointValue.y)    if recognizer.state == .Began    {      label.backgroundColor = UIColor.yellowColor()      self.view.bringSubviewToFront(label)    }    else if recognizer.state == .Ended    {      label.backgroundColor = UIColor.lightGrayColor()      self.pointValue.x += point.x      self.pointValue.y += point.y    }}
// 縮放let label = UILabel(frame: CGRectMake(10.0, 10.0, 200.0, 200.0))self.view.addSubview(label)label.backgroundColor = UIColor.lightGrayColor()label.text = "手勢操作-捏合手勢";label.adjustsFontSizeToFitWidth = truelabel.textAlignment = .Center;// 添加手勢let pinchRecognizer = UIPinchGestureRecognizer(target: self, action: Selector("pinchClick:"))label.userInteractionEnabled = truelabel.addGestureRecognizer(pinchRecognizer)// 手勢響應方法var scaleValue:CGFloat! = 1.0 // 縮放func pinchClick(recognizer:UIPinchGestureRecognizer){    let label:UILabel = recognizer.view as! UILabel    let scale = recognizer.scale;    if scale > 1.0    {      // 放大      label.transform = CGAffineTransformMakeScale(self.scaleValue + scale - 1.0, self.scaleValue + scale - 1.0)    }    else    {      // 縮小      label.transform = CGAffineTransformMakeScale(self.scaleValue * scale, self.scaleValue * scale)    }    if recognizer.state == .Began    {      label.backgroundColor = UIColor.greenColor()      self.view.bringSubviewToFront(label)    }    else if recognizer.state == .Ended    {      label.backgroundColor = UIColor.lightGrayColor()      if scale > 1.0      {        self.scaleValue = self.scaleValue + scale - 1.0;      }      else      {        self.scaleValue = self.scaleValue * scale      }    }}
// 旋轉let label = UILabel(frame: CGRectMake(10.0, 10.0, 200.0, 200.0))self.view.addSubview(label)label.backgroundColor = UIColor.lightGrayColor()label.text = "手勢操作-旋轉手勢";label.adjustsFontSizeToFitWidth = truelabel.textAlignment = .Center;// 添加手勢let rotationRecognizer = UIRotationGestureRecognizer(target: self, action: Selector("ratotionClick:"))label.userInteractionEnabled = truelabel.addGestureRecognizer(rotationRecognizer)var rotationValue:CGFloat! = 1.0 // 旋轉// 手勢響應方法func ratotionClick(recognizer:UIRotationGestureRecognizer){    let label:UILabel = recognizer.view as! UILabel    let rotation = recognizer.rotation    label.transform = CGAffineTransformMakeRotation(rotation + self.rotationValue)    if recognizer.state == .Began    {      label.backgroundColor = UIColor.greenColor()      self.view.bringSubviewToFront(label)    }    else if recognizer.state == .Ended    {      label.backgroundColor = UIColor.lightGrayColor()      self.rotationValue = self.rotationValue + rotation    }}
// 長按let label = UILabel(frame: CGRectMake(10.0, 10.0, (self.view.frame.size.width - 10.0 * 2), 60.0))self.view.addSubview(label)label.backgroundColor = UIColor.lightGrayColor()label.text = "手勢操作-長按手勢";label.adjustsFontSizeToFitWidth = truelabel.textAlignment = .Center;// 添加手勢let pressRecognizer = UILongPressGestureRecognizer(target: self, action: Selector("pressClick:"))    pressRecognizer.minimumPressDuration = 3.0    label.userInteractionEnabled = true    label.addGestureRecognizer(pressRecognizer)// 手勢響應方法func pressClick(recognizer:UILongPressGestureRecognizer){    let label:UILabel = recognizer.view as! UILabel    if recognizer.state == .Began    {      let alertView = UIAlertView(title: nil, message: "長按響應", delegate: nil, cancelButtonTitle: "知道了")      alertView.show()      label.backgroundColor = UIColor.orangeColor()      self.view.bringSubviewToFront(label)    }    else if recognizer.state == .Ended    {      label.backgroundColor = UIColor.lightGrayColor()    }}

 如有疑問請留言或者到本站社區交流討論,感謝閱讀希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 棋牌| 抚顺市| 印江| 清苑县| 砀山县| 尼木县| 江油市| 油尖旺区| 美姑县| 扎兰屯市| 鸡泽县| 公主岭市| 来宾市| 平果县| 桑日县| 竹山县| 阜平县| 许昌县| 嘉义市| 明星| 东乡县| 潞城市| 酉阳| 永寿县| 桂东县| 会理县| 巴楚县| 禹州市| 徐州市| 新邵县| 曲沃县| 五大连池市| 河北省| 阳春市| 洞头县| 汾阳市| 衡水市| 武乡县| 高清| 郯城县| 碌曲县|