Actually... it'd probably be better to put those calls in your
SetCoordinate() method that you have, since you probably don't want to
make those calls when the MKMapKit (or would it be MKAnnotationView?)
calls setCoordinate on your annotation (e.g. when a user drags&drops
your annotation view, as hinted at by the Apple docs).

Jeff

On Thu, Sep 15, 2011 at 4:43 PM, Jeff Stedfast <[email protected]> wrote:
> Hi Chris,
>
> I did some more looking and it turns out the solution is incredibly simple:
>
> In your MyAnnotation class, do this:
>
>                public override CLLocationCoordinate2D Coordinate {
>                        get { return  _coord; }
>                        set {
>                                this.WillChangeValue ("coordinate");
>                                _coord = value;
>                                this.DidChangeValue ("coordinate");
>                        }
>                }
>
> This magically makes the MKMapView redraw your annotation without
> having to remove/add the annotation.
>
> Hope that helps!
>
> Jeff
>
> On Thu, Sep 15, 2011 at 1:06 PM, Jeff Stedfast <[email protected]> wrote:
>> Turns out people are having the EXACT same issue you are having in
>> Objective-C on StackOverflow:
>>
>> http://stackoverflow.com/questions/2256177/how-to-move-a-mkannotation-without-adding-removing-it-from-the-map
>>
>> You can use this very same trick in MonoTouch.
>>
>> Jeff
>>
>> On Thu, Sep 15, 2011 at 12:53 PM, Jeff Stedfast <[email protected]> wrote:
>>> Hi Chris,
>>>
>>> Reading the developer documentation on Apple's site for MKAnnotation,
>>> this is what it says for setCoordinate:
>>>
>>> setCoordinate:
>>> Sets the new center point of the annotation.
>>>
>>> - (void)setCoordinate:(CLLocationCoordinate2D)newCoordinate
>>> Parameters
>>> newCoordinate
>>> The new center point for the annotation.
>>> Discussion
>>> Annotations that support dragging should implement this method to
>>> update the position of the annotation.
>>>
>>> Availability
>>> Available in iOS 4.0 and later.
>>> Declared In
>>> MKAnnotation.h
>>>
>>>
>>> Calling setCoordinate() in Objective-C will not magically make your
>>> annotation update its location on the screen. You'll have to use a
>>> similar trick as to what I suggested to make it work in Objective-C as
>>> well.
>>>
>>> To the best of my understanding, this method doesn't move the
>>> MKAnnotation on the map like you seem to believe, it gets set by the
>>> MKMapView when the user drags the annotation to another location.
>>>
>>> If I'm wrong, please provide me with some documentation explaining why
>>> I'm wrong (preferably Apple documentation) or at least an Objective-C
>>> program demonstrating it.
>>>
>>> Jeff
>>>
>>> On Thu, Sep 15, 2011 at 12:41 PM, Chris Hamblett <[email protected]> 
>>> wrote:
>>>> Since the bug has been changed to resolved without actually solving the 
>>>> problem, I take this as a good reason that Objective-C will always have 
>>>> functions that cannot be done through MonoTouch. I guess I will be making 
>>>> the switch back to xCode.
>>>>
>>>> Sent from my iPhone
>>>>
>>>> On Sep 15, 2011, at 12:19 PM, "Jeff Stedfast" <[email protected]> wrote:
>>>>
>>>>> Hi Chris,
>>>>>
>>>>> I've taken a look at this and the problem is that once an
>>>>> MKAnnotationView is created for your MKAnnotation subclass, you are
>>>>> doing nothing to signal to the MKMapView that anything has changed.
>>>>> Setting a new coordinate on your MKAnnotation subclass has no way of
>>>>> notifying the parent MKMapView that it needs to redraw.
>>>>>
>>>>> Here's what I suggest you do:
>>>>>
>>>>> In your MKAnnotation subclass (MyAnnotation), add an event that gets
>>>>> emitted when you set/change the coordinate. Then, have your
>>>>> ViewController that owns the MKMapView listen for those events on each
>>>>> of your MyAnnotations. When the event is emitted, have your
>>>>> ViewController remove the annotation and re-add it.
>>>>>
>>>>> I tested this and it works.
>>>>>
>>>>> Jeff
>>>>>
>>>>> On Thu, Sep 15, 2011 at 9:26 AM, Chris Hamblett <[email protected]> 
>>>>> wrote:
>>>>>> I've added self-contained sample code to Bug 724
>>>>>> bug 724
>>>>>> Any updates on a binding that sets off the MapView KVO flag? Is this 
>>>>>> fixed
>>>>>> on a new development build?
>>>>>> ~Chris
>>>>>> _______________________________________________
>>>>>> MonoTouch mailing list
>>>>>> [email protected]
>>>>>> http://lists.ximian.com/mailman/listinfo/monotouch
>>>>>>
>>>>>>
>>>>
>>>
>>
>
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch

Reply via email to