2016-06-07 1 views
0

, 나는 사용자 정의 클래스셀에서 Google지도 버튼을 활성화하려면 어떻게해야합니까? 이 코드의이 라인은 내가</p> <p>이 셀을 만든 사용자 지정 셀에서 실행되지 않는 것 같습니다 그러나 사용자 정의 tableViewCell에서

에 구글 맵 클래스 뷰를 연결 있는 tableView의 일부입니다, 나는있는 TableView의 viewDidLoad에 예를 var gmapsCell = GMapTableViewCell이 셀을 인스턴스화하려고 노력하지만 항상 그래서 코드 아래에 나의 접근 방식을 변경

nil을 반환 것 같다

import UIKit 
import GoogleMaps 

class GMapTableViewCell: UITableViewCell, GMSMapViewDelegate { 

    let locationManager = CLLocationManager() 

    @IBOutlet var mapView: GMSMapView! 
    override func awakeFromNib() { 
     super.awakeFromNib() 
     locationManager.requestAlwaysAuthorization() 
     // For use in foreground 
     locationManager.requestWhenInUseAuthorization() 
     mapView.delegate = self 
     mapView.settings.myLocationButton = true 

    } 


    override func setSelected(selected: Bool, animated: Bool) { 
     super.setSelected(selected, animated: animated) 

     // Configure the view for the selected state 
    } 

} 


extension GMapTableViewCell: CLLocationManagerDelegate { 

    func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) { 

     if status == .AuthorizedWhenInUse { 
      locationManager.startUpdatingLocation() 
      mapView.myLocationEnabled = true 
      mapView.settings.myLocationButton = true 
     } 
    } 

    func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
     if let location = locations.first { 
      mapView.camera = GMSCameraPosition(target: location.coordinate, zoom: 15, bearing: 0, viewingAngle: 0) 
      locationManager.stopUpdatingLocation() 

     } 
    } 
} 
이 문제는 지금

override func awakeFromNib() { 
     super.awakeFromNib() 
     locationManager.requestAlwaysAuthorization() 
     // For use in foreground 
     locationManager.requestWhenInUseAuthorization() 
     mapView.delegate = self 
     mapView.settings.myLocationButton = true 

    } 

이 실행되지 않을 것입니다

. 내 목표는 단순히 장치의 현재 위치로 이동하는 것입니다. 사용자 정의 셀에 대해 viewDidLoad에 해당하는 항목이 있습니까?

답변

0

Location Manager에서 위치 업데이트를 시작하려면 "NSLocationWhenInUseUsageDescription"키를 info.plist에 문자열 유형으로 추가해야합니다. enter image description here

+0

이미 오래전에 추가되었습니다. – airsoftFreak

0

awakeNib() 내의 모든 코드는 tableView : cellForRowAtIndexPath로 작성해야합니다. 모든 대표를 거기에 설정하십시오. 그러면 정상적으로 작동합니다.

관련 문제