iOS 指南针的制作 附带源码
2024-08-22 23:06:59
iOS 指南针的制作 附带源码
代码下载地址:
指南针的制作非常简单。
直接看代码吧!
ViewController.h代码如下:
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController<CLLocationManagerDelegate> @property (retain, nonatomic) UIImageView *compassImageView;
@property (retain, nonatomic) CLLocationManager *locationManager;
@end
ViewController.m代码如下:
- (void)viewDidLoad
{
[super viewDidLoad]; UIImageView* backgroundImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"BackGroundPad.png"]];
[self.view addSubview:backgroundImage];
//创建指南针图片
self.compassImageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"Compass_HD.png"]]; self.compassImageView.center = CGPointMake(370, 500);
[self.view addSubview:self.compassImageView];
//初始化locationManager并设置代理类
self.locationManager = [[CLLocationManager alloc]init];
self.locationManager.delegate = self;
if ([CLLocationManager headingAvailable]) {
//设置精度
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
//设置滤波器不工作
self.locationManager.headingFilter = kCLHeadingFilterNone;
//开始更新
[self.locationManager startUpdatingHeading];
}
else
{
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"atention" message:@"compass not Available" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
}
}
//调用locationManager成员方法
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {
//重置view的位置
self.compassImageView.transform = CGAffineTransformIdentity;
CGAffineTransform transform = CGAffineTransformMakeRotation(-1 * M_PI*newHeading.magneticHeading/180.0);
self.compassImageView.transform = transform;
}
这样就OK啦 ! 要在真机上测试哦!!!
最新文章
- Xamarin 与VS2015RC(xamarin 3.11.450) 报空指针错误。
- ACM/ICPC 之 欧拉回路两道(POJ1300-POJ1386)
- 广播变量、累加器、collect
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(安装ubuntu虚拟机)-(5)
- linux包之sysstat之mpstat与pidstat命令
- linux共享windows资料
- 用JAVA给JSON进行排版
- 记WebUtility.HtmlDecode将&;nbsp;转成特殊空格的问题
- 1.cocos2dx它Menu(CCMenuItemFont,CCMenuItemImage,CCMenuItemLabel,CCMenuItemSprite,CCMenuItemToggle)
- C#工具:防sql注入帮助类
- Java中的==与equals
- bzoj2018年5月赛
- git第九节---git命令实战
- SciTe设置
- 关于selenium实现滑块验证
- 12.19daily_scrum
- Exchange 2013与 Office Web Apps 整合
- C#中的Partial
- windows登陆密码破解方法之一
- ionic ui框架及creator使用帮助
热门文章
- C语言两个libxml2库使用的问题
- CentOS 7 结构体GCC 4.8.2 32位编译环境
- css-缩写
- 轨道sql谈话 dbms_monitor
- CSS3中文手册基础知识
- james+javamail入门
- [置顶] 纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!
- SZU:B85 Alec&#39;s Eggs
- 错误与修复:ASP.NET无法检测IE10,IE11,导致_doPostBack未定义JavaScript错误,恒处于F5卷动条位置
- hadoop集群的搭建与配置(2)