如何在 iOS 中仅拖动图像视图的一个角

How to drag only one corner of an image view in iOS

我尝试实现照片编辑的一个功能app.I 没有任何线索来实现这个,这就是为什么我分享一些照片来解释我的 question.the 正常照片看起来像这样。

当我点击图像的右下角并将其向下拖动时,它只会展开该部分,新图像如下所示。

如果我倒过来,图片看起来像这样。

所以问题是哪种手势实际上支持这种拖动以及如何实现它?为了更好地理解,您可以在 abs 部分查看 manly 实现此功能的应用程序。

所以想清楚了。如果你抓住右下角并开始拖动,你不仅需要改变那个角的位置,还要改变右上角的 X 位置和左下角的 Y 位置,所以最终的形状总是一个矩形。

或者,您可以使用 CGRect 而不是随机四边形,然后简单地找出您需要为每个角更改哪些矩形属性(对于右下角,您只需编辑高度和宽度。对于右上角,您必须更改高度、宽度和 origin.y。对于左上角,您需要更改高度、宽度、origin.xorigin.y。对于底部左边您需要更改高度、宽度和 origin.x.

您还需要考虑如果用户将矩形拖动到零大小,或者超过零大小使得角交叉并且左下角现在变成右上角时该怎么办。你允许吗,或者你只是限制拖动,所以它不能被拖动到小于某个最小尺寸?两种方法都有效,但您需要仔细考虑、编码和测试。

这并不难,而且是图形编程的具体细节。通过自己动手而不是使用第三方框架,您会学到很多东西。