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啦 ! 要在真机上测试哦!!!


最新文章

  1. Xamarin 与VS2015RC(xamarin 3.11.450) 报空指针错误。
  2. ACM/ICPC 之 欧拉回路两道(POJ1300-POJ1386)
  3. 广播变量、累加器、collect
  4. kvm虚拟化管理平台WebVirtMgr部署-完整记录(安装ubuntu虚拟机)-(5)
  5. linux包之sysstat之mpstat与pidstat命令
  6. linux共享windows资料
  7. 用JAVA给JSON进行排版
  8. 记WebUtility.HtmlDecode将&amp;nbsp;转成特殊空格的问题
  9. 1.cocos2dx它Menu(CCMenuItemFont,CCMenuItemImage,CCMenuItemLabel,CCMenuItemSprite,CCMenuItemToggle)
  10. C#工具:防sql注入帮助类
  11. Java中的==与equals
  12. bzoj2018年5月赛
  13. git第九节---git命令实战
  14. SciTe设置
  15. 关于selenium实现滑块验证
  16. 12.19daily_scrum
  17. Exchange 2013与 Office Web Apps 整合
  18. C#中的Partial
  19. windows登陆密码破解方法之一
  20. ionic ui框架及creator使用帮助

热门文章

  1. C语言两个libxml2库使用的问题
  2. CentOS 7 结构体GCC 4.8.2 32位编译环境
  3. css-缩写
  4. 轨道sql谈话 dbms_monitor
  5. CSS3中文手册基础知识
  6. james+javamail入门
  7. [置顶] 纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!
  8. SZU:B85 Alec&#39;s Eggs
  9. 错误与修复:ASP.NET无法检测IE10,IE11,导致_doPostBack未定义JavaScript错误,恒处于F5卷动条位置
  10. hadoop集群的搭建与配置(2)