@IBOutlet weak var compassView: UIImageView!
lazy var locationM : CLLocationManager =
{
let locationM = CLLocationManager()
locationM.delegate = self
if #available(iOS 8.0, *)
{
locationM.requestAlwaysAuthorization()
locationM.pausesLocationUpdatesAutomatically = false
if #available(iOS 9.0, *)
{
locationM.allowsBackgroundLocationUpdates = true // IOS 9.0之后使
}
}
locationM.distanceFilter = 100
locationM.desiredAccuracy = kCLLocationAccuracyBest
return locationM
}()
override func viewDidLoad()
{
super.viewDidLoad()
view.backgroundColor = UIColor.systemPink
// 2. 使用位置管理者, 获取当前设备朝向
// "磁力计"传感器
if CLLocationManager.headingAvailable()
{
locationM.startUpdatingHeading()
}else
{
print(" 磁力器不可用")
}
}
//朝向更新
func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading)
{
// 1. 拿到当前设备朝向
/// 0- 359.9 角度
//磁力朝向
let angle = newHeading.magneticHeading
print(angle)
//2换算成弧度
let hudu = CGFloat(angle) / 180 * CGFloat.pi
//根据弧度转动图片
UIView.animate(withDuration: 0.5)
{
self.compassView.transform = CGAffineTransform(rotationAngle: -hudu)
}
}
Swift 指南针实现
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...