我想在SideView中使用MKMapView。 SideView包含一些Cell,我加载MapView如下:(这是我的自定义UITableViewCell类)
override init(style: UITableViewCellStyle, reuseIdentifier: String) {
super.init(style: style, reuseIdentifier: "AddressCell")
var addressMap = MKMapView(frame: CGRectMake(0,50,250,150))
var latitude:CLLocationDegrees = 48.399193
var longitude:CLLocationDegrees = 9.993341
var latDelta:CLLocationDegrees = 0.01
var longDelta:CLLocationDegrees = 0.01
var theSpan:MKCoordinateSpan = MKCoordinateSpanMake(latDelta, longDelta)
var churchLocation:CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
var theRegion: MKCoordinateRegion = MKCoordinateRegionMake(churchLocation, theSpan)
addressMap.setRegion(theRegion, animated: true)
self.contentView.addSubview(addressMap)
这里的问题是,地图中的内存永远不会被释放。如何在UITableViewCell中使用地图而不会出现内存问题?
答案 0 :(得分:2)
好的,所以如果您仍在寻找解决方案,我发现在离开mapView时(或在重新加载MapKit视图的任何事件之前)调用removeFromSuperview()会释放内存。只需添加
override func viewDidDisappear(animated: Bool) {
myMap.removeFromSuperview()
}
到我的MapKit View的View Controller就足以为我解决这个问题了。希望你已经找到了这个(或另一个)解决方案,但我想我无论如何都会发布它,以防它节省了一些时间。
在此示例中, myMap
是我的MapKit视图的插座。