我就是这样做的。我希望它会有所帮助。
var nearestBeacon: CLBeacon!
func beaconManager(_ manager: KTKBeaconManager, didRangeBeacons beacons: [CLBeacon], in region: KTKBeaconRegion)
{
let knownBeacons = beacons.filter{ $0.proximity != CLProximity.unknown }
if (knownBeacons.count > 0) {
nearestBeacon = knownBeacons[0] as CLBeacon
}
print(knownBeacons, "+")
if nearestBeacon != nil {
switch nearestBeacon!.minor.intValue {
case 1:
changeColorWithAnime(color: .blue, status: .show)
logNearestBeacon(beacon: "Balcony")
changeColorWithAnime(color: .orange, status: .hide)
changeColorWithAnime(color: .yellow, status: .hide)
// print("Blue")
case 2:
changeColorWithAnime(color: .orange, status: .show)
logNearestBeacon(beacon: "Bathroom")
changeColorWithAnime(color: .blue, status: .hide)
changeColorWithAnime(color: .yellow, status: .hide)
// print("Orange")
case 3:
changeColorWithAnime(color: .yellow, status: .show)
logNearestBeacon(beacon: "Bedroom")
changeColorWithAnime(color: .blue, status: .hide)
changeColorWithAnime(color: .orange, status: .hide)
// print("Yellow")
default:
return
}
}
}