У меня есть проект Xcode с mapView. Я загружаю мой друг (Kevin) из этого массива:Swift MapView не сохраняет последний сдвиг при заполнении элемента изображения Xib
myProfiles.append(UserClass
(locationLatitude:44.067, locationLongitude:-88.296,
id:1,username: "Kevin"
)
)
У меня есть customAnnotation, который отображает мой друг на карте. Аннотации друзей находятся внизу карты. Поэтому, когда я нажимаю на аннотацию, mapView должен выдвигать на 203 пробела и оставаться там.
// triggered when the user selects an annotation. We are clicking on Kevin
func mapView(_ mapView: MKMapView, didSelect annotationView: MKAnnotationView)
{
print("before setting map")
let adjustedBy: CGFloat = 203.0
self.mapView.frame.origin.y = self.mapView.frame.origin.y - adjustedBy
self.populateSelectedProfile()
}
func populateSelectedProfile() {
DispatchQueue.main.async {
// the tag 1000 is for the first user in array (username: Kevin)
if let userXib = self.view.viewWithTag(1000) as? User {
print("setting up user")
userXib.isHidden = false
userXib.userImageView.image = UIImage(named: "user")
}
}
}
populateSelectedProfile начнет заселять XIB с имиджем друга (ImageView создается застройщиком):
@IBOutlet weak var userImageView: UIImageView!
Но что происходит, является то, что карта после нажатия на вершину, он идет вниз сразу после заполнения изображения. Это можно увидеть, если вы разместите точку прерывания на печатной линии:
print("setting up user")
Почему mapView сместился снова?
Обращаем ваше внимание, что: Мне не нужно отображать изображение. Я знаю, как это сделать. Моя проблема связана с тем, что mapView снова падает.