I am working on my first swift application for the iPad. Thus far I have a basic mapview with a button in the bottom toolbar, which I would like to refresh and focus onto th
Try the following 3 line code:
@IBAction func refresh(sender: AnyObject) {
mapView.setCenterCoordinate(mapView.userLocation.coordinate, animated: true)
}
EDIT
Check the following:
Can you see the dot on the left side of the method?
I want see your connections inspector. Refresh button and refresh
method are connected correctly?
As @Orkhan said you can do it in this way.
If you want to do the action you just simple ctrl-drag to viewController and select "Action".
After that you can add code to the handler.
var location: CLLocation!
@IBAction func refreshLocation(sender: AnyObject) {
let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))
self.map.setRegion(region, animated: true)
}
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
self.location = locations.last as CLLocation
}
You can update your location with this function:
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
let location = locations.last as CLLocation
let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))
self.map.setRegion(region, animated: true)
}
If your target is iOS 8, you need to add the NSLocationAlwaysUsageDescription
key in your Info.plist.