gpt4 book ai didi

objective-c - 刷新 mkannotation 属性和刷新注释

转载 作者:搜寻专家 更新时间:2023-10-30 20:13:23 25 4
gpt4 key购买 nike

我有一个位于 mapview 上的 mkannotation,它有一个 mkannotationview 以及一个 calloutview,单击它时会转到子 uiviewcontroller。我正在更新标注的 uiviewcontroller 的一些属性,但完成后我想移动 map 上注释的位置并更改注释标题和副标题。我怎样才能从标注的 uiviewcontoller 轻松地做到这一点?处理这个问题最优雅的方法是什么?如果有人有代码示例,那就太好了。

谢谢

最佳答案

我会创建一个协议(protocol),比如 MapCallBackDelegate,来处理您想做的事情。这避免了紧密耦合的代码。把这个放在你的 map 注释 View 头文件中

@protocol MapCallBackDelegate
-(void)updateAnnotation:(id)whatEverParamsYouWant;
@end

然后让你的 map View 实现这个协议(protocol)。当你创建你的 map 注释 View 时,给它一个属性

@property (nonatomic, retain) id<MapCallBackDelegate> callbackDelegate;

当您将它添加到您的 map 时,将该属性设置为 self

myMapAnnotationView.callbackDelegate = self;

因此,当您想要更改标题/副标题/位置时,只需在 callbkacDelegate 上调用该消息即可。

这很优雅,因为它减少了紧密耦合的代码,允许其他对象实现相同的协议(protocol)以供以后代码重用,并促进信息隐藏在您的 MapAnnotationView 中。

关于objective-c - 刷新 mkannotation 属性和刷新注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1371138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com