這就像5個小時我堅持這個問題。我最近開始使用Swift,不能說我喜歡它,並且在問題發生後我會收到問題。我正在嘗試做很簡單的事情。我有類有日期(NSDate),durration(NSTimeInterval),locationName(字符串)和locationMapView(MKMapView)。它沒有實現任何協議。我想在我的初始化程序中獲取座標並將其設置爲MapView。我發現了一些關於如何去做的指南,但是它卻發生了一些基本問題。我甚至無法設置一個區域。下面是初始化的片段:Swift 2.x無法設置MapView Region
self.locationMapView = MKMapView();
let coordinate:CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: 34.03, longitude: 118.14)
let span = MKCoordinateSpanMake(100, 80)
let region = MKCoordinateRegionMake(coordinate, span)
self.locationMapView!.setRegion(region, animated: true)
print(String(region))
print("---")
print(String(locationMapView!.region))
這裏所顯示在控制檯:
MKCoordinateRegion(center: __C.CLLocationCoordinate2D(latitude: 34.03, longitude: 118.14), span: __C.MKCoordinateSpan(latitudeDelta: 100.0, longitudeDelta: 80.0))
---
MKCoordinateRegion(center: __C.CLLocationCoordinate2D(latitude: nan, longitude: nan), span: __C.MKCoordinateSpan(latitudeDelta: 0.0, longitudeDelta: 0.0))
我花了一段時間來弄明白,價值觀尚未分配,但我不知道爲什麼。我在許多答案和指南中找到了這種代碼。我的實施有什麼問題?
謝謝大家的幫助,我很抱歉,如果這是愚蠢的。
這基本上是我在我自己的答案中寫的(我認爲)。唯一的謎就是爲什麼我無法在創建MapView之前和之後將其分配給特定的框架?我的意思是它首先完成對象中的所有邏輯,然後將其分配到我想要使用它的地方。特別是如果我想在兩個不同的地方使用相同的地圖。 – Bielik
@Bielik我認爲如果你已經正確地創建了地圖視圖,你的第一個代碼可以正常工作。而不是說'self.locationMapView = MKMapView()',你說'self.locationMapView = MKMapView(frame:someRealFrame)'。 - 第二點,「我想在兩個不同的地方使用同一張地圖」,對我來說毫無意義;一個視圖不能同時出現在兩個不同的地方。 – matt
我開始明白一些事情。正如我所說,我剛剛開始迅速,並不完全知道在這種情況下的框架。關於這2個地方,我可能會解釋。正如我所說的這個locationMapView是簡單類(4個變量/屬性)的一部分。我想讓MapView準備好在相同的地方顯示,更精確地說,在tableViewCell中顯示,並且在單擊該單元格後顯示詳細的視圖。這就是我想要在兩個不同的地方展示它的意思。所以通過創建這個框架我可以做到這一點? – Bielik