swift - 如何继续使图像在 ScrollView 特定区域内滚动?

标签 swift uiscrollview uiimageview

我正在尝试创建一个裁剪工具,就像他们在联系人应用程序照片选择中所做的那样。我已经完成了 View 和圆形层。唯一的问题是在其中滚动。我需要图像可以滚动到其边缘。

在下图中,您可以看到图像的顶端远高于圆圈。我无法将图像滚动到下方,以便顶部边缘与圆圈的顶部边缘对齐。原因是我不知道我应该做什么,而不是代码方面。我不知道如何将其记录下来,例如使用什么属性。现在,随着图像放大得更多,图像的顶部边缘距离圆的顶部边缘越来越远,一旦图像放大到缩放比例 1,图像的顶部边缘就会到达 View 的顶部边缘我无法将其滚动到圆圈的顶部边缘。那么有人可以给我一些关于如何实现它的指示吗?

enter image description here

提前致谢。

最佳答案

设置内容插入值就可以了。基本上,我计算了纵向模式下 ScrollView 内容插入的顶部和底部边缘以及横向模式下的左右边缘,并将它们设置为 contentinset 值。

还必须将 contentInsetAdjustmentBehavior 设置为 never,以避免任何不需要的插入更改。现在可以了。

if screenHeight > screenWidth {
    let top = (view.bounds.height / 2.0) - (view.bounds.width / 2.0)
    scrollView?.contentInset = UIEdgeInsetsMake(top, 0, top, 0)
} else {
    let top = (view.bounds.width / 2.0) - (view.bounds.height / 2.0)
    scrollView?.contentInset = UIEdgeInsetsMake(0, top, 0, top)
}
scrollView?.contentInsetAdjustmentBehavior = .never

关于swift - 如何继续使图像在 ScrollView 特定区域内滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51624910/

相关文章:

ios - 无法以编程方式同时满足约束条件。 swift iOS

Swift - 运算符 + 变量

ios - 使用大标题时,不会触发 UIScrollView 中的 UIRefreshControl

ios - AFNetworking 使用 URL 设置 UITableViewCell 的 imageView 图像,设置图像后 imageview 框架仍然为 0

ios - 从 url 中提取的图像未出现在 UIImageView 上

ios - 如何防止 Parse 保存 PFObject child 的?

ios - 使用 swift 制作一个获取用户位置的应用程序

ios - Zoomscale UIScrollView 不工作

ios - Xcode - [UITableView _contentOffsetForScrollingToRowAtIndexPath :atScrollPosition:]: row (7) beyond bounds (0) for section (0).'

ios - UIImageView 的 tintColor 不适用于 Storyboard,但适用于代码