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

swiftUI专项训练39用Swift实现摇一摇功能

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

   微信的摇一摇功能想必大家都用过,过春节的时候抢红包也没少摇吧,那么用swift语言怎样实现这么酷炫的功能呢。摇动属于IOS内置可识别的一种动作,在你须要实现摇动功能的viewcontroller中。在viewDidLoad方法中增加下面代码:

UIApplication.sharedApplication().applicationSupportsShakeToEdit = true
        self.becomeFirstResponder()

第一句是要求当前页面支持对摇动事件可编辑的支持,设置为true后我们能够实现对应的方法,稍后会介绍。

第二句是把当前页面作为第一反应者,也就说我们有不论什么操作结果都会反映到当前页面中。

如今我们能够使用与摇动相关的方法了,主要有三个:motionBegin、motionEnded、motionCancelled。

分别捕获摇动開始、摇动结束和摇动取消三个动作。

我们选用motionEnded来举例:

override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) {
        if motion == UIEventSubtype.MotionShake
        {
        var alertController1 = UIAlertController(title: "恭喜你。成功了。", message: nil, preferredStyle: .Alert)
            var cancelAction = UIAlertAction(title: "取消", style: .Cancel, handler: nil)
            alertController1.addAction(cancelAction)
              self.presentViewController(alertController1, animated: true, completion: nil)
        }
    }

这种方法是在motion结束的时候推断,假设刚才的motion是摇动的话,那么弹出一个警告框。提示“恭喜你。成功了!

”,以下我们用我近期在做的一个APP来測试下。这是摇动前的画面:


然后我们摇动手机,看看效果:



你能够在这三个方法中增加自己须要的代码。实现更丰富的功能。

最后再说一点。看网上之前的资料说须要添加方法,由于大部分view不支持firstresponder:

override func canBecomeFirstResponder() -> Bool {
        return true
    }
可能这是曾经的版本号了。我用的是xcode6.2正式版。亲測是不须要加这种方法的。


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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