【问题标题】:Enable zoom on UIImage but not for UIViews on top of the UIImageView在 UIImage 上启用缩放,但不适用于 UIImageView 顶部的 UIView
【发布时间】:2018-03-07 11:03:14
【问题描述】:

我有一个基本上是地图图片的图像视图。我想在此地图(imageview)上的特定位置放置标记,并为这些标记启用缩放动画。

我尝试了一些 CALayer 操作,但并没有真正实现任何目标。 请帮忙!

【问题讨论】:

  • 您能否添加一些代码以了解您想要实现的具体目标。
  • 所以我有一张地图的静态图像。我想在地图上放置基本上像标记一样的小视图。我希望这张地图可以缩放,但标记不应该缩放。
  • 那些是实时坐标的标记,如果是,为什么不添加注释
  • 我可以在滚动视图中添加地图以及标记以实现缩放效果,但随后我也放大了我不想要的标记。我只想放大地图。
  • @ChetanRajagiri 不,地图本身只是一个 UIImageView,而标记只是 UIViews。

标签: ios swift uiview uiimageview calayer


【解决方案1】:

根据您的代码,您将必须制作一个 UIView 和内部,以使地图中的 UIImage 具有相同大小的尾随等。 然后创建一个从您的 UIView 到 ViewController 的出口,并以编程方式将新的 UIImageViews 添加到包含您的图像和地图的 UIView。

所以添加新 UIImageViews 的函数将是

func addSmallSubviewIntoParentView(){
        let tmpImageView:UIImageView = UIImageView(frame: CGRect(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat))
        tmpImageView.image = yourImage
        viewOutlet.addSubview(tmpImageView)
    }

并根据父 UIView 添加大小和位置。 随意添加约束。

但是如果你想拥有一个 MKMapView,你可以禁用用户交互并将 MKAnnotationViews 添加到地方的 CLLocation 中

【讨论】:

  • 将标记添加到地图不是我担心的。我想知道如何在不放大标记的情况下实现放大效果
  • 如果将标记添加到 MKMapView 和委托函数 func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? { } 您已设置 MKAnnotationView 的图像大小,您将插入它不会调整大小并且地图会缩放
  • 地图不是 MKMapView。它只是一个 UIImage
  • 您能否编辑帖子并添加用于缩放的代码?这只是一个数学问题,因此每次调用缩放函数时,您都必须调整引脚的大小。
猜你喜欢
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多