呈现图像裁剪界面

时间:2010-04-21 02:32:12

标签: iphone cocoa-touch ipad

我正在尝试设计一个用于在iPhone操作系统中裁剪图像的UI,并怀疑我正在努力解决问题。我的目标几乎就是Tapbots二人组用Pastebot做的事情。在该应用程序中,它们使源图像变暗但提供可移动且可调整大小的裁剪视图,并且您正在裁剪的图像位于可缩放的滚动视图中;当您调整大小或移动基础图像时,裁剪视图会适当调整。

我模拟了一个合成图像,它将让我了解我所追求的设计,以及我目前如何设置视图层次结构。 alt text http://grab.by/3TN4

我开始使用的方法如下:带有要裁剪的图像的UIImageView在滚动视图中,在图像视图前面添加了一个带有黑色填充和合适的透明度/ alpha设置的普通UIView。然后我使用自定义UIView,它是更高级别的scrollview的兄弟,它实现了drawRect:方法,并且大部分调用CGImageCreateWithImageInRect来获取图像位图的与裁剪视图的位置匹配的部分并绘制到CGContext。

在viewcontroller中我正在使用UIScrollViewDelegate方法来跟踪滚动并将这些更改传递给自定义裁剪UIView,以便它与滚动contentOffset保持同步。这很有用了。但是当滚动视图zoomScale改变时,试图保持同步是我想要的时候我应该寻求帮助。

寻找建议或指导。我最初的方法似乎比需要更多的工作。

这可以通过ImageView中的遮罩层完成吗?如果是这样,我将如何设置跟踪以移动和调整裁剪矩形的大小?我使用图层的经验非零,但到目前为止非常有限。

2 个答案:

答案 0 :(得分:2)

我发现,如果您想要在简单的,不可移动的蒙版或裁剪矩形下操作图像的位置和大小(甚至旋转)而不是尝试移动蒙版或裁剪矩形,通常会有更好的裁剪结果UI在一个不动的图像之上。尤其如此,您总是希望裁剪的图像具有预设的比例和方向。

答案 1 :(得分:2)

为了记录的缘故 - Cocoa Controls上的现成组件

http://cocoacontrols.com/platforms/ios/controls/imagecropper