gpt4 book ai didi

ios - 子类化 MKMapView 并使其成为 mapview 委托(delegate),同时仍然允许其他委托(delegate)

转载 作者:行者123 更新时间:2023-11-29 13:01:33 26 4
gpt4 key购买 nike

我有一个设计问题。这是我想做的:我想将 MKMapView 限制到特定区域,同时使其成为想要实际使用 map 的 View Controller 的抽象。

为了限制 map View ,我很可能想使用委托(delegate)方法 mapView:regionDidChangeAnimated: 并获得更改通知,如果该区域超出我的预定区域,则将 map 移回.但是,由于我想让它足够通用,所以我不希望代码位于 View Controller 中。我想我可能想要子类化 MKMapView。

如果我这样做,我将有一个 MKMapView 的子类(例如,一个 ConstraintMapView 类),它也是 MKMapView 的委托(delegate),并且公开方法以将该区域限制给该类的任何用户。但是类的用户(比如 View Controller )也希望成为 MKMapView 的委托(delegate),所以我也想将所有委托(delegate)消息转发给 View Controller 。

为此,我需要一个指向真实委托(delegate)( View Controller )的委托(delegate)属性,但在我的ConstriantMapView中,如果我有一个委托(delegate)属性,那意味着我' m 将 MKMapView 的 setter 和 getter 覆盖给委托(delegate),事情变得有点复杂,因为在 MKMapView 内部它可以调用 ConstraintMapView 的方法和我会给它 View Controller ,但我真的想给它ConstraintMapView

  1. 有没有办法让它发挥作用?
  2. 是否有更好的模式来解决这个问题,使 Controller 不必费心将 View 移回受限区域?

最佳答案

我在这个项目中做过类似的代理MKMapViewDelegate;检查出来:

https://github.com/mapbox/mbxmapkit

关于ios - 子类化 MKMapView 并使其成为 mapview 委托(delegate),同时仍然允许其他委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19649821/

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