IOS学习笔记-加速度传感器(重力感应)-UIAccelerometer
@interface DSViewController : UIViewController <UIAccelerometerDelegate>
{
//我们用一个label来表示随加速度方向运动的小方块
UILabel *_label;
//x轴方向的速度
UIAccelerationValue _speedX;
//y轴方向的速度
UIAccelerationValue _speedY;
}
@end
@implementation DSViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor yellowColor];
CGRect winRect = [UIScreen mainScreen].applicationFrame;
//实例化 随加速度方向运动的小方块(label)
_label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 80, 80)];
_label.center = CGPointMake(winRect.size.width * 0.5, winRect.size.height * 0.5);
_label.text = @"Droid";
_label.textAlignment = UITextAlignmentCenter;
_label.backgroundColor = [UIColor greenColor];
[self.view addSubview:_label];
[_label release];
}
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
//召唤加速度传感器
UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
//设置加速度传感器的 接收加速度通知的时间间隔
//设置为1.0/60.0表示一秒接收60次,可根据实际需求调整
accelerometer.updateInterval = 1.0/60.0;
//下面这个不设置,代理方法就不会调用
accelerometer.delegate = self;
}
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
//不要忘了停止传感器的工作
//结束加速度传感器的工作
_speedX = _speedY = 0;
UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
accelerometer.delegate = nil;
}
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
//获得的加速度要考虑到加速度传感器的原点是物理重心,而不是屏幕右上角
//x轴方向的速度加上x轴方向获得的加速度
_speedX += acceleration.x;
//y轴方向的速度加上y轴方向获得的加速度
_speedY += acceleration.y;
//小方块将要移动到的x轴坐标
CGFloat posX = _label.center.x + _speedX;
//小方块将要移动到的y轴坐标
CGFloat posY = _label.center.y - _speedY;
//碰到屏幕边缘反弹
if (posX < 0.0) {
posX = 0.0;
//碰到屏幕左边以0.4倍的速度反弹
_speedX *= -0.4;
}else if(posX > self.view.bounds.size.width){
posX = self.view.bounds.size.width;
//碰到屏幕右边以0.4倍的速度反弹
_speedX *= -0.4;
}
if (posY < 0.0) {
posY = 0.0;
//碰到屏幕上边不反弹
_speedY = 0.0;
}else if (posY > self.view.bounds.size.height){
posY = self.view.bounds.size.height;
//碰到屏幕下边以1.5倍的速度反弹
_speedY *= -1.5;
}
//移动小方块
_label.center = CGPointMake(posX, posY);
}
@end
首尾呼应:加速度传感器使用很easy有木有!
IOS学习笔记-加速度传感器(重力感应)-UIAccelerometer相关推荐
- OpenCV for Ios 学习笔记(4)-标记检测1
本文原始地址:OpenCV for Ios 学习笔记(4)-标记检测1 简单的标记经常是以白色块和黑色块构成的规则图形.因为我们预先知道这些因素,所以我们可以很容易检测标记. 如图: 首先,我们需要找 ...
- IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法...
IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法 Author:hmjiangqq Email:jiangqqlmj@163.com ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- iOS学习笔记-自己动手写RESideMenu
代码地址如下: http://www.demodashi.com/demo/11683.html 很多app都实现了类似RESideMenu的效果,RESideMenu是Github上面一个stars ...
- iOS学习笔记-地图MapKit入门
代码地址如下: http://www.demodashi.com/demo/11682.html 这篇文章还是翻译自raywenderlich,用Objective-C改写了代码.没有逐字翻译,如有错 ...
- iOS学习笔记-自定义过渡动画
代码地址如下: http://www.demodashi.com/demo/11678.html 这篇笔记翻译自raywenderlick网站的过渡动画的一篇文章,原文用的swift,由于考虑到swi ...
- IOS学习笔记07---C语言函数-scanf函数
2013/8/7 IOS学习笔记07---C语言函数-scanf函数 ------------------------------ qq交流群:创梦技术交流群:251572072 ...
- IOS学习笔记07---C语言函数-printf函数
IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...
- IOS学习笔记06---C语言函数
IOS学习笔记06---C语言函数 -------------------------------------------- qq交流群:创梦技术交流群:251572072 ...
- IOS学习笔记05---C语言程序的开发运行过程
IOS学习笔记05---C语言程序的开发运行过程 0 5.C语言3-C语言程序的开发运行过程 ----------------------------------------------------- ...
最新文章
- 小手段:开启 GNOME 的窗口分组效果
- Android Studio 第一次配置及其使用
- 随机生成文件名字或随机生成一个数
- Xamarin XAML语言教程模板视图TemplatedView(一)
- c语言 二级菜单_收下计算机二级秘笈,考场上说好不哭!
- 实现dmx512_LED灯具DMX512信号与普通TTL信号区别
- 对学校的希望和寄语_放飞青春梦,奋斗十四五——2020年福州文教职业中专学校寄宿生联欢晚会...
- matlab最小错误率决策,利用MATLAB实现最小错误率贝叶斯判别
- 一个页面是否应该全部组件化
- BeautifulSoup解析库select方法实例——获取企业信息
- python之twisted模块安装
- IOS学习笔记6—Objective C—Foundation框架
- php 无刷新上传,php 无刷新上传文件的代码
- 学习 openssl 证书命令
- 大型电子病历系统【整套源代码分享】
- 用74ls00,74ls153,74ls151,74ls138设计三变量表决器
- akuna capital oa
- Linux重置root密码和Linux基础命令
- encode()和decode()编码与解码的解析、常用编码与为何要encode和decode
- 【应用安全】“我的QQ被盗,请大家不要相信任何消息.......”