मेरे पास मेरे मानचित्र में दो ओवरले विकल्प हैं: एक एमकेसीर्कल ओवरले और एक एमके पोलिगोनऑवरले। पहला यूआईस्लाइडर के माध्यम से नियंत्रित चर त्रिज्या के साथ होता है। अंतिम कोनों की संख्या और स्थिति के आधार पर अनुकूलन योग्य होता है। अगर मैं बहुत बदलता हूं सर्कल के त्रिज्या (यूआईस्लाइडर के मूल्य को कम करें) कभी-कभी मेरा ओवरले गायब हो जाता है (सर्कल) और उसके बाद बहुभुज अब और नहीं खींचा जा सकता है (निश्चित रूप से सर्कल भी)। ऐप की दुर्घटनाग्रस्त हो रही है। यह क्या हो सकता है? ,एमकेओवरले कभी-कभी गायब हो जाता है
- (IBAction) addCircle:(id)sender
{
slider.hidden = NO;
slider.transform = CGAffineTransformMakeRotation(M_PI*(-0.5));
_longPressRecognizer= [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
_longPressRecognizer.minimumPressDuration = 1.0;
[mapview addGestureRecognizer:_longPressRecognizer];
[_longPressRecognizer release];
}
- (void)handleLongPress:(UIGestureRecognizer *)gestureRecognizer
{
if (gestureRecognizer.state != UIGestureRecognizerStateBegan)
return;
CGPoint touchPoint = [gestureRecognizer locationInView:mapview];
CLLocationCoordinate2D touchMapCoordinate = [mapview convertPoint:touchPoint toCoordinateFromView:mapview];
MKPointAnnotation *pa = [[MKPointAnnotation alloc] init];
pa.coordinate = touchMapCoordinate;
pa.title = @"Circle Based Search";
[mapview addAnnotation:pa];
[pa release];
tmC = touchMapCoordinate;
double radius = 1000.0;
self.circleOverlay = [MKCircle circleWithCenterCoordinate:tmC radius:radius];
[mapview removeOverlays:[mapview overlays]];
[mapview addOverlay:circleOverlay];
[mapview removeAnnotations:[mapview annotations]];
}
-(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id)overlay
{
if ([overlay isKindOfClass:[MKCircle class]])
{
MKCircleView* circleView = [[MKCircleView alloc] initWithOverlay:overlay] ;
circleView.fillColor = [UIColor blueColor];
circleView.strokeColor = [UIColor blueColor];
circleView.lineWidth = 5.0;
circleView.alpha = 0.20;
return circleView;
}
else
if ([overlay isKindOfClass:[MKPolygon class]])
{
MKPolygonView *polygonView = [[MKPolygonView alloc] initWithOverlay:overlay ];
polygonView.fillColor = [UIColor blueColor];
polygonView.strokeColor = [UIColor blueColor];
polygonView.lineWidth = 5.0;
polygonView.alpha = 0.20;
return polygonView;
}
return [kml viewForOverlay:overlay];
}
- (void)addCircleWithRadius:(double)radius
{
self.circleOverlay = [MKCircle circleWithCenterCoordinate:tmC radius:radius];
[mapview removeOverlays:[mapview overlays]];
[mapview addOverlay:circleOverlay];
[mapview removeAnnotations:[mapview annotations]];
}
- (IBAction)sliderChanged:(UISlider *)sender
{
double radius = (sender.value);
[self addCircleWithRadius:radius];
[mapview removeAnnotations:[mapview annotations]];
}
कृपया हमें वह कोड दिखाएं जिसका उपयोग आप मंडल का आकार बदलने के लिए कर रहे हैं। जब तक हम देखते हैं कि हम केवल अनुमान लगा सकते हैं कि क्या हो रहा है। – sosborn
बस किया, इसके लिए खेद है, मैं पूरी तरह से कोड जोड़ने के लिए भूल गया। – Hari
आपको अपने स्लाइडर में त्रिज्या को एनएसएलॉग करना चाहिए यह देखने के लिए कि क्या आप उम्मीद कर रहे हैं कि यह लौट रहा है या नहीं। यह सुनिश्चित करने के लिए टीएमसी मूल्य भी लॉग करें कि केंद्र रह रहा है जहां आप रहने की उम्मीद करते हैं। कोड संरचना के बारे में निश्चित नहीं है, लेकिन जब आप धीरे-धीरे स्लाइडर को ले जाते हैं तो आप लंबे स्पर्श पहचानकर्ता को सक्रिय कर सकते हैं। – sosborn