मेरे पास MapView के साथ व्यू कंट्रोलर है, नियंत्रक को स्टोरीबोर्ड में निर्दिष्ट एक सेग्यू द्वारा प्रारंभ किया गया है। MapView नियंत्रक में एक संपत्ति के लिए (स्टोरीबोर्ड के माध्यम से) जुड़ा हुआ है।MKMapView और viewDidLoad/viewWillAppear/viewDidAppear स्टोरीबोर्ड का उपयोग कर
ज फ़ाइल
@interface DetailViewController : UIViewController <MKMapViewDelegate>
@property (weak, nonatomic) IBOutlet MKMapView *locationMapView;
मैं एक विधि का उपयोग कर रहा एक प्रमुख क्षेत्र तक MapView केंद्र के लिए: viewDidLoad
/viewWillAppear
से
- (void)centerMapView
{
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake(geoPoint.latitude, geoPoint.longitude), 1000, 1000);
[self.locationMapView setRegion:region animated:NO];
NSLog(@"size height: %f",self.locationMapView.frame.size.height);
NSLog(@"size width: %f",self.locationMapView.frame.size.width);
}
इस विधि कॉलिंग पहले के लिए कुछ नहीं करता है समय, लेकिन दृश्य को लोड होने पर दूसरी बार सही तरीके से केन्द्रित करता है। लॉग उत्पादन हमेशा होता है:
size height: 0.000000
size width: 0.000000
जब viewDidAppear
में कहा जाता MapView केंद्रित है और उत्पादन आकार सही है:
size height: 400.000000
size width: 320.000000
मुझे लगता है कि आकार मान का मतलब है कि दृश्य अभी तक में प्रारंभ नहीं किया गया है viewDidLoad
/viewWill
प्रकट होता है, यह क्षेत्र को स्थापित करने के साथ मेरी समस्या से असंबंधित हो सकता है।
मुझे आश्चर्य है, अगर मैप व्यू के क्षेत्र को viewDidLoad
/viewWillAppear
में सेट करना संभव नहीं है, तो उपयोगकर्ता को इस क्षेत्र में बदलाव नहीं दिख रहा है।
कोई सलाह?
क्या आपने कहा था कि आपने इसे विल्लएपियर में भी देखा है? यदि नहीं, तो वहां पर आज़माएं। –
मैंने कोशिश की है कि सफलता के बिना –