2012-04-05 17 views
8

मेरे पास मेरे मानचित्र में दो ओवरले विकल्प हैं: एक एमकेसीर्कल ओवरले और एक एमके पोलिगोनऑवरले। पहला यूआईस्लाइडर के माध्यम से नियंत्रित चर त्रिज्या के साथ होता है। अंतिम कोनों की संख्या और स्थिति के आधार पर अनुकूलन योग्य होता है। अगर मैं बहुत बदलता हूं सर्कल के त्रिज्या (यूआईस्लाइडर के मूल्य को कम करें) कभी-कभी मेरा ओवरले गायब हो जाता है (सर्कल) और उसके बाद बहुभुज अब और नहीं खींचा जा सकता है (निश्चित रूप से सर्कल भी)। ऐप की दुर्घटनाग्रस्त हो रही है। यह क्या हो सकता है? ,एमकेओवरले कभी-कभी गायब हो जाता है

- (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]]; 
} 
+0

कृपया हमें वह कोड दिखाएं जिसका उपयोग आप मंडल का आकार बदलने के लिए कर रहे हैं। जब तक हम देखते हैं कि हम केवल अनुमान लगा सकते हैं कि क्या हो रहा है। – sosborn

+0

बस किया, इसके लिए खेद है, मैं पूरी तरह से कोड जोड़ने के लिए भूल गया। – Hari

+0

आपको अपने स्लाइडर में त्रिज्या को एनएसएलॉग करना चाहिए यह देखने के लिए कि क्या आप उम्मीद कर रहे हैं कि यह लौट रहा है या नहीं। यह सुनिश्चित करने के लिए टीएमसी मूल्य भी लॉग करें कि केंद्र रह रहा है जहां आप रहने की उम्मीद करते हैं। कोड संरचना के बारे में निश्चित नहीं है, लेकिन जब आप धीरे-धीरे स्लाइडर को ले जाते हैं तो आप लंबे स्पर्श पहचानकर्ता को सक्रिय कर सकते हैं। – sosborn

उत्तर

3

समस्या solved.It Values के तहत संपत्ति Continuous था UISlider के साथ कुछ था, निब में, स्लाइडर के निरीक्षक में checked.After मैं अनचेक कि:

यहाँ कुछ कोड मैं का उपयोग करें समस्या हल हो गई थी।

संबंधित मुद्दे