使用滚动视图缩放时,如何使图像视图始终位于屏幕中心?

ioio007

现在,我具有以下视图层次结构:

  • 视图
    • 滚动视图
      • 比例视图容器
        • 旋转视图容器
          • 地图图像视图
            • 箭头图像视图

我的视图层次结构有点复杂,因为我既需要缩放也要旋转,并且还需要保持地图和箭头的位置关系,我已经研究了很长时间了,并且找到了这种解决方案。

现在,我的问题是Arrow Image View缩放时如何始终保持在屏幕中央?

这是我的一些代码:

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
    return Container For Scale View
}

func scrollViewDidZoom(_ scrollView: UIScrollView) {
    let imageViewSize = MapImageView.frame.size
    let scrollViewSize = scrollView.bounds.size

    let verticalPadding = imageViewSize.height < scrollViewSize.height ? (scrollViewSize.height - imageViewSize.height) / 2 : 0
    let horizontalPadding = imageViewSize.width < scrollViewSize.width ? (scrollViewSize.width - imageViewSize.width) / 2 : 0

    scrollView.contentInset = UIEdgeInsets(top: verticalPadding, left: horizontalPadding, bottom: verticalPadding, right: horizontalPadding)
}
Prashant Tukadiya

在这里你需要一些数学

当缩放容器视图按照缩放比例变大时,您需要将center转换为相对于超级UIView

假设您的“容器比例视图”为 viewBase

        var center = self.view.center

之后,将您的图像点转换为相同

         let convertedImagePoint = self.viewBase.convert(imageView.center, to: self.view)

现在获取Difff

        let diff = convertedImagePoint.y - center.y


        DispatchQueue.main.async {
            self.scrollView1.contentOffset.y += diff
        }

希望对你有帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在滚动视图中使用自动布局缩放图像如何居中?

在MapBox视图上平移/缩放时,如何阻止ScrollView滚动?

放置Gameobject使其始终位于屏幕中心

如何使用约束布局,使名片视图始终位于一个位置?

在列表视图中滚动时图像消失

如果滚动视图位于顶部,如何隐藏视图?

如何使进度条始终位于滚动视图的中心屏幕和滑动刷新布局中?

Flutter:-如何在不缩小Stack视图的屏幕的情况下滚动屏幕?(出现键盘时滚动整个屏幕)

如何始终在屏幕上显示视图

在中心滚动图像并在中心缩放

如何使对象位于滚动视图的底部

当我在其上应用捏缩放时,如何在中心设置图像视图?

当同时启用缩放时,如何使用Highcharts触发模式视图?

在iOS的滚动视图中对称缩放图像

如何在滚动视图中缩放文本视图?

导航栏位于标题的前面,滚动时始终位于屏幕顶部

滚动视图中的Android Studio Tabhost始终位于顶部

使用可观察的滚动视图时,如何使选项卡视图充满整个屏幕?

屏幕旋转 - 滚动视图

滚动视图缩放停止让我滚动整个缩放图像

unity 如何使滚动视图儿童缩放以适应移动设备上的屏幕?

使用滚动视图时缩放视图

如何使用滚动视图?

如何将图像放在视图的中心?

如何将图像视图的中心与视图组的顶部对齐?

当其他文本视图垂直扩展时,如何使文本视图始终在屏幕上?

滚动视图内的 UIImageView - 缩放时偏离中心

如何在滚动视图中填充图像以填充屏幕?

如何根据视图在屏幕上的位置进行 android 缩放动画并将该视图集中在中心?