我正在开发我的第一个快速iPad应用程序.到目前为止,我有一个基本的mapview,底部工具栏中有一个按钮,我想刷新一次,并在点击后关注用户位置.
目前我有这个代码:
import UIKit
import MapKit
import CoreLocation
class ViewController: UIViewController,MKMapViewDelegate,CLLocationManagerDelegate {
var location: CLLocation!
let locationManager = CLLocationManager()
@IBOutlet weak var mapView: MKMapView!
@IBOutlet weak var refresh: UIBarButtonItem!
@IBAction func refresh(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.mapView.setRegion(region,animated: true)
}
override func viewDidLoad() {
super.viewDidLoad()
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
self.locationManager.requestWhenInUseAuthorization()
self.locationManager.startUpdatingLocation()
self.mapView.showsUserLocation = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// dispose of any resources that can be recreated.
}
// location delegate methods
func locationManager(manager: CLLocationManager,didUpdateLocations locations: [CLLocation]) {
let location = locations.last
let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude,longitude: location!.coordinate.longitude)
let region = MKCoordinateRegion(center: center,span: MKCoordinateSpan(latitudeDelta: 1,longitudeDelta: 1))
self.mapView.setRegion(region,animated: true)
self.locationManager.stopUpdatingLocation()
}
func locationManager(manager: CLLocationManager,didFailWithError error: NSError)
{
print("Error code: " + error.localizedDescription)
}
}
如何获取刷新按钮?我真的需要一些帮助,因为我是Swift / xcode的新手:)
谢谢
正如@Orkhan所说,你可以这样做.
如果你想做这个动作你只需简单地按住Ctrl键拖动到viewController并选择“Action”.
之后,您可以将代码添加到处理程序.
var location: CLLocation!
@IBAction func refreshLocation(sender: AnyObject) {
let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude,longitude: location.coordinate.longitude)
let region = MKCoordinateRegion(center: center,longitudeDelta: 0.01))
self.map.setRegion(region,animated: true)
}
func locationManager(manager: CLLocationManager!,didUpdateLocations locations: [AnyObject]!) {
self.location = locations.last as CLLocation
}