赞
踩
import UIKit
import CoreMotion
class ViewController: UIViewController,UIAccelerometerDelegate {
var ball:UIImageView!
//var ball:UIButton!
var speedX:UIAccelerationValue = 0
var speedY:UIAccelerationValue = 0
var motionManager = CMMotionManager()
@IBOutlet weak var labtest: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//jsdtest()
//创建文本标签
//let label = UILabel(frame:CGRect(x:20, y:40, width:300, height:100))
//label.text="123"
//self.view.addSubview(label)
let btn1 = UIButton(frame:CGRect(x:20, y:140, width:100, height:30))
btn1.setTitle("jsd", for: .normal)
//btn1.setValue(1, forUndefinedKey: "1")
btn1.backgroundColor=UIColor.black
btn1.addTarget(self, action: #selector(btnTouched), for:.touchUpInside)
self.view.addSubview(btn1)
let btn2 = UIButton(frame:CGRect(x:20, y:180, width:100, height:30))
btn2.setTitle("cam", for: .normal)
//btn1.setValue(1, forUndefinedKey: "1")
btn2.backgroundColor=UIColor.black
btn2.addTarget(self, action: #selector(btnTouched), for:.touchUpInside)
self.view.addSubview(btn2)
}
@objc func btnTouchedT()
{
//print("btnTouchedT")
jsdtest()
}
@objc func btnTouched(_ button:UIButton)
{
//print(button.currentTitle ?? <#default value#>)
if button.currentTitle == "jsd"
{
jsdtest()
}
else if button.currentTitle == "cam"
{
print("jsd22222")
}
}
func jsdtest()
{
//放一个小球在中央
ball=UIImageView(image:UIImage(named: "ball"))
ball.backgroundColor=UIColor.blue
ball.frame = CGRect(x:0, y:0, width:50, height:50)
ball.center = self.view.center
self.view.addSubview(ball)
motionManager.accelerometerUpdateInterval = 1/60 //通知时间间隔
if motionManager.isAccelerometerAvailable {
let queue = OperationQueue.current
motionManager.startAccelerometerUpdates(to: queue!, withHandler: {
(accelerometerData, error) in
//动态设置小球位置
self.speedX += accelerometerData!.acceleration.x
self.speedY += accelerometerData!.acceleration.y
var posX=self.ball.center.x + CGFloat(self.speedX)
var posY=self.ball.center.y - CGFloat(self.speedY)
//碰到边框后的反弹处理
if posX<0 {
posX=0;
//碰到左边的边框后以0.4倍的速度反弹
self.speedX *= -0.4
}else if posX > self.view.bounds.size.width {
posX=self.view.bounds.size.width
//碰到右边的边框后以0.4倍的速度反弹
self.speedX *= -0.4
}
if posY<0 {
posY=0
//碰到上面的边框不反弹
self.speedY=0
} else if posY>self.view.bounds.size.height{
posY=self.view.bounds.size.height
//碰到下面的边框以1.5倍的速度反弹
self.speedY *= -1.5
}
self.ball.center = CGPoint(x:posX, y:posY)
})
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func alerttest(_ sender: Any) {
//self.labtest.text = self.speedX
print(self.speedX)
print(self.speedY)
}
}
/*import UIKit
import CoreMotion
class ViewController: UIViewController,UIAccelerometerDelegate {
var ball:UIImageView!
var speedX:UIAccelerationValue = 0
var speedY:UIAccelerationValue = 0
var motionManager = CMMotionManager()
@IBOutlet weak var labtest: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func alerttest(_ sender: Any) {
//super.viewDidAppear(animated)
/*
let alertController = UIAlertController(title: "系统提示",
message: "田田是小狗吗?", preferredStyle: .alert)
let cancelAction = UIAlertAction(title: "不是", style: .cancel, handler: nil)
let okAction = UIAlertAction(title: "是的!", style: .default, handler: {
action in
print("确实是条狗")
self.labtest.text = "确实是条狗"
alertController.addAction(cancelAction)
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: nil)
*/
}
}
*/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。