2016-10-20 29 views
8

Chciałbym użyć widoku zestawu map. Widok ma widok kontrolera widoku, który zajmuje tylko część ekranu, a nie widok pełnoekranowy.Problem z MKMapView i AutoLayout

Nie jestem pewien, czy to jest błąd, który powinienem zgłosić, czy też brakuje mi jakiejś podstawowej wiedzy na temat korzystania z Map Kit Views. Najłatwiejszym sposobem wyjaśnienia problemu są zdjęcia.

Na pierwszym zrzucie ekranu ustawiłem dwa subviews, UIImageView i MKMapView, na innym pustym kontrolerze View przy użyciu narzędzia do budowania interfejsu. Oba subviews zostały ograniczone w ten sam sposób, tj. Wysokość, szerokość, ograniczone do górnej lub dolnej części ich widoku superwizyjnego i poziomo w kontenerze. Xcode nie daje żadnych błędów.

ekranu przed numerze: enter image description here

Drugi zrzut ekranu jest po ponownym uruchomieniu Xcode. UIImageView jest taki sam, jednak MKMapView zwiększył swoją szerokość i wysokość do 1000. Xcode podaje następujący błąd: Wysokość i pozycja pionowa są niejednoznaczne w przypadku "widoku mapy". Aktualizacja ramek nie przywraca właściwego układu. Aby naprawić ten problem, należy zmodyfikowad MKMapView ręcznie, aby pasował do ViewController, po czym uaktualnienie ramek przywraca układ do tego, który pokazano na pierwszym zrzucie ekranu. Ponowne uruchomienie Xcode powoduje powtarzanie problemu.

Zrzut ekranu po ponownym uruchomieniu Xcode: enter image description here

Używam najnowszej wersji Xcode 8 dostępny w App Store.

Aktualizacja:
Ten błąd został naprawiony w Xcode 8.1

+0

Wydaje rodzaj błędu w Xcode –

Odpowiedz

3

Wydaje błąd i obejście można dodać prosty UIView zamiast MKMapKit i po dodaniu ograniczeń zmienić klasę widoku z UIView do MKMapView. Chociaż nie można ustawić właściwości tego widoku mapy z storyboardu, ale można ustawić go w kodzie za pomocą jego gniazdka.

enter image description here

prosi o podniesienie tego jako błędu @https://bugreporter.apple.com

+1

XCode 8.2.1 - nie miałem koniec problemów z MapView i automatycznym układem. W szczególności próbując umieścić Mapę wewnątrz StackView - MapView nigdy nie zarejestrował prawidłowej wysokości lub próbował przesłonić z Height = 9M! To było jedyne rozwiązanie, które prawidłowo aktualizuje się wraz ze zmianami orientacji i układu. – MandisaW