• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift-点击箭头旋转

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

 

let arrowImage = UIImageView(image: UIImage(named: "Machine_arrow")!.imageWithRenderingMode(.AlwaysTemplate))

        let arrowButton = UIButton(frame: CGRectMake(700, 20, arrowImage.bounds.width, arrowImage.bounds.height))

        arrowButton.addSubview(arrowImage)

        arrowButton.addTarget(self, action: #selector(btnClicked(_:event:)), forControlEvents: .TouchUpInside)

 

// 检查用户点击按钮时的位置,并转发事件到对应的accessorytapped事件

    func btnClicked(sender: UIButton, event: AnyObject) {

        let touches = event.allTouches()! as NSSet

        let touch = touches.anyObject() as! UITouch

        let currentTouchPosition = touch.locationInView(selectTable)

        let indexPath: NSIndexPath = selectTable.indexPathForRowAtPoint(currentTouchPosition)!

        

        tableView(selectTable, accessoryButtonTappedForRowWithIndexPath: indexPath)

    }

    

    // 这样,UITableViewaccessoryButtonTappedForRowWithIndexPath方法会被触发,并且获得一个indexPath 参数。通过这个indexPath 参数,我们可以区分到底是众多按钮中的哪一个附件按钮发生了触摸事件:

    func tableView(tableView: UITableView, accessoryButtonTappedForRowWithIndexPath indexPath: NSIndexPath) {

        let idx = indexPath.row

        //在这里加入自己的逻辑

        print(idx)

        // 点击箭头旋转

        rotat()

        // rotateArrow()

    }

    

    // 旋转动画一

    func rotat() {

        //创建旋转动画

        let anim = CABasicAnimation(keyPath: "transform.rotation")

        //旋转角度

        anim.toValue = 1 * M_PI

        //旋转指定角度需要的时间

        anim.duration = 1

        //旋转重复次数

        anim.repeatCount = MAXFLOAT

        //动画执行完后不移除

        anim.removedOnCompletion = true

        //将动画添加到视图的laye

        arrowImage.layer.addAnimation(anim, forKey: nil)

        //取消动画

        arrowImage.layer.removeAllAnimations()

        //这个是旋转方向的动画

        UIView.animateWithDuration(0.2) { () -> Void in

            //指定旋转角度是180°

            self.arrowImage.transform = CGAffineTransformRotate(self.arrowImage.transform, CGFloat(M_PI))

        }

    }

 

    // 旋转动画二

    func rotateArrow() {

        UIView.animateWithDuration(0.3, animations: {[weak self] () -> () in

            if let selfie = self {

                selfie.arrowImage.transform = CGAffineTransformRotate(selfie.arrowImage.transform, 180 * CGFloat(M_PI/180))

            }

            })

    }


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift5.x函数发布时间:2022-07-13
下一篇:
swiftStringtoUTF8编码发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap