当前位置: 首页 > 知识库问答 >
问题:

UIScrollView缩放:限制平移到imageView.image边界

淳于凯
2023-03-14

我有一个屏幕大小的UIScrollView持有相同大小的UIImageView。

我在具有AspectFit的UIImage视图中设置了一个图像,因此对于更宽的图像,顶部和底部都有黑条。缩小时,这符合预期。

双击屏幕强制a < code >[self . scroll view setZoomScale:self . scroll view . maximumzoomscale animated:YES];这样做的问题是,在上面提到的图像上,我可以平移到照片边缘以外的地方。

我假设这是因为我< code >返回imageView在< code >(ui view *)viewforzoominginscolllview:(ui scrollView *)scroll view 中,并且imageView高度高于图像,因此我可以平移到imageView的顶部和底部,忽略其内容。

那么,如何将滚动视图平移限制在图像的边界内?

共有2个答案

裴理
2023-03-14

只需通过以下代码将scrollview的内容大小设置为图像的大小:

scrollView.contentSize = [scrollView imageView].image.size;

请注意,您应该在为滚动视图图像设置图像时执行此操作View。

洪雅健
2023-03-14

你需要使用这个:在Xcode6中使用AutoLayout约束模拟纵横匹配行为

自动布局上的纵横匹配。然后,如果图像大小不同,加载图像时需要添加纵横比约束。你可能会出现一个错误,缩放后的图像粘在右边缘。仍然无法解决。

 类似资料:
  • 我在Java中编码了一个Mandelbrot集分形,并包含了平移和放大分形的能力。唯一的问题是,当我平移图像并试图放大时,它看起来好像试图放大中心并平移一点。平移和缩放不是真正的平移或缩放,而是对分形的重新计算,看起来像是平移或缩放。 这是我的代码。 我能告诉用户在哪里可以让相机更精确地缩放吗? 先谢谢你。 编辑:图片对于任何想知道这个程序将呈现什么。

  • 问题内容: 我希望能够放大HTML 5画布中鼠标下方的点,例如Google Maps上的。我该如何实现? 问题答案: 终于解决了: 关键是计算轴位置,以便缩放点(鼠标指针)在缩放后保持在同一位置。 最初,鼠标与角之间有一段距离,我们希望鼠标下方的点在缩放后保持在同一位置,但这是远离角的地方。因此,我们需要移动(角的坐标)以解决此问题。 然后,其余代码需要应用缩放并转换到绘制上下文,以便其原点与画布

  • 问题内容: 我有一个JFreeChart时间序列图,其中显示了TimePeriodValuesCollection。数据集包含两个间隔。数据正确显示,我可以平移(按住Ctrl并拖动)视图。问题是,如果我放大并在缩放视图中向右平移视图,则第二个间隔在第一个间隔不再可见后突然消失。 如果只有一个时间间隔,或者我没有放大,一切都很好。 有什么想法吗? SSCCE: 问题答案: 可悲的是,我不知道为什么,

  • 通过前7节课的学习,我相信你已经对Threejs几何体内部顶点构成有了一定了解。 几何体Geometry对象有一系列的顶点属性,也封装了一系列的方法,通过.scale()、.translate()、.rotateX()等方法可以对几何体本身进行缩放、平移、旋转等几何变换。通过.scale()、.translate()、.rotateX()这些方法对几何体进行变换,注意本质上都是改变结合体顶点位置坐

  • 我是一名Ruby/PHP web应用程序开发人员已经有一段时间了,我已经习惯了水平缩放服务器实例以处理更多请求的想法。水平缩放-意味着位于负载均衡器后面的应用程序的独立实例,它们什么都不共享,彼此不知道。 由于websocket有效地保持了浏览器和服务器之间的开放式通信线路,那么PHP/Ruby世界中典型的水平缩放架构是否会导致像链接中所解释的那样的聊天应用程序中断--因为新的websocket连

  • 下面是我使用的代码: 有办法让它起作用吗?在中似乎没有简单的方法来获取多边形的边界。