UIGestureRecognizer用于旋转,调整大小,在UIView的边缘上移动

什么

我希望我UITextView的工作和看起来与裁剪实用程序类似(请参见下图示例),但是我找不到正确的方法来使用视图的边缘移动,旋转和调整视图大小:



我成功地将UIGestureRecognizers应用于整个对象UITextView以移动(或平移)和旋转它,但是当涉及到边缘功能(所有4个节点都将移动,旋转或调整视图大小)时,我陷入困境,因为节点难以充分发挥作用。我尝试了2种方法:

1.将的所有4个节点添加UIImageView为的子视图UITextView当节点位于外UITextView边缘的一半时,我通常clipsToBound = NO;使它们正确显示。但是,视图外部的节点无法响应触摸。然后我尝试了解决方案2 ...

2.包装UITextView在容器中,UIView并为每个边缘添加4个节点,并UITextView正确放置在内部。这样,我获得了良好的UI,但是手势识别器仍然无法正常工作,因为它们可能嵌套在一个视图中,而该视图是另一个已有手势识别器的视图的子视图。这需要更多的调查,但我觉得这种方法有点太复杂了。

我走对了吗?也许UIGestureRecognizer这不是我要实现的目标的正确解决方案。如果有人有使用类似产品的经验,请指出正确的方向。我不是在寻找代码而是想法...

阿里·利托夫斯基

方法1不起作用(没有任何黑客手段),因为UIView的点击测试不会响应其边界之外的触摸。(有关hack,请参见uiview之外的交互

方法3是正确的,您应该继续追求它。但是,您可以尝试在自定义UIView子类上使用touchesBegan:withEvent:。

我的想法:

  1. 我已经使用以下技术实现了类似的大小调整控件。与手势识别器相比,您具有更多的控制权,因为普通的UIGestureRecognizer倾向于具有开始响应的最小距离,在这种情况下,由于您想要近乎即时的响应,因此在这种情况下并不理想另外,知道您已经有一些手势识别器,您就不太可能发生冲突。

  2. 许多人可能会建议您设计自己的UIGestureRecognizer来封装和解决我上面概述的一些问题。这可能是一种更清洁的方法,但是您只需要实现几个UIGestureRecognizer委托方法,例如

    • gestureRecognizerShouldBegin:gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:防止与其他手势识别器同时交互。您可能还需要使用来要求某些手势识别器仅在其他手势识别器失败时才激活requireGestureRecognizerToFail:

也许您可以从#1开始,使其正常运行,然后理想地将其重构为#2。

创意1的样例代码

typedef enum  {
     HandleTopLeft,
     HandleTopRight,
     HandleBottomLeft,
     HandleBottomRight
}
HandlePosition; //you will need fewer

@protocol SizingHandleDelegate;

@interface SizingHandle : UIView
@property (nonatomic, assign) id<SizingHandleDelegate> delegate;
@property (nonatomic, assign) HandlePosition position;
@end


@protocol SizingHandleDelegate <NSObject>

- (void)touchesBeganForSizingHandle:(SizingHandle*)sizingHandle;
- (void)touchesEndedForSizingHandle:(SizingHandle*)sizingHandle;

@end

您的SizingHandle类应重写touchesBegan:withEvent:touchesEnded:withEvent:并将这些消息转发给其委托。然后,委托人应该能够应用正确的逻辑。

另外,您可能希望处理用户一次触摸多个SizingHandle的用例。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在画布上移动/调整大小/旋转ContentControl?

来自分类Dev

使用自动调整大小时,UIView的旋转大小不调整

来自分类Dev

iOS Swift:无需调整大小即可旋转和缩放 UIView

来自分类Dev

同时使用UIGestureRecognizer缩放,旋转和移动

来自分类Dev

调整旋转元素的大小

来自分类Dev

调整UIView的大小

来自分类Dev

调整UIView的大小

来自分类Dev

在调整大小和加载时移动DOM元素。仅适用于调整大小

来自分类Dev

调整大小的UIView上没有触摸事件

来自分类Dev

移动/调整分区大小

来自分类Dev

QHBoxLayout(大小,调整大小,移动)

来自分类Dev

调整iFrame内容大小无法在移动设备上使用

来自分类Dev

ios上的dojo /移动方向更改未按预期调整大小

来自分类Dev

在移动设备上如何防止徽标调整大小?

来自分类Dev

三.js 在移动设备上意外调整大小

来自分类Dev

UIScrollview内UIView内的UILabel上的UIGestureRecognizer

来自分类Dev

在可用空间上扩展分区:调整大小或移动并调整大小或创建新分区?

来自分类Dev

在iOS8下使用CGAffineTransform旋转时,UIView不会调整大小

来自分类Dev

程序化布局约束导致旋转时不调整基本UIView的大小

来自分类Dev

画布和网格之间的差异,以移动,调整大小和旋转UIElement

来自分类Dev

如何在Android Studio中通过触摸来移动,旋转和调整文本大小?

来自分类Dev

画布和网格之间的差异,以移动,调整大小和旋转UIElement

来自分类Dev

在WinForms上绘制大小调整后的图像似乎具有“模糊”边缘

来自分类Dev

Matlab图像边缘调整大小/细化

来自分类Dev

单击时停止调整边缘大小

来自分类Dev

调整从xib创建的UIView的大小?

来自分类Dev

调整UIView的大小限制。迅速

来自分类Dev

动态调整“容器” UIView的大小

来自分类Dev

调整从xib创建的UIView的大小?

Related 相关文章

  1. 1

    如何在画布上移动/调整大小/旋转ContentControl?

  2. 2

    使用自动调整大小时,UIView的旋转大小不调整

  3. 3

    iOS Swift:无需调整大小即可旋转和缩放 UIView

  4. 4

    同时使用UIGestureRecognizer缩放,旋转和移动

  5. 5

    调整旋转元素的大小

  6. 6

    调整UIView的大小

  7. 7

    调整UIView的大小

  8. 8

    在调整大小和加载时移动DOM元素。仅适用于调整大小

  9. 9

    调整大小的UIView上没有触摸事件

  10. 10

    移动/调整分区大小

  11. 11

    QHBoxLayout(大小,调整大小,移动)

  12. 12

    调整iFrame内容大小无法在移动设备上使用

  13. 13

    ios上的dojo /移动方向更改未按预期调整大小

  14. 14

    在移动设备上如何防止徽标调整大小?

  15. 15

    三.js 在移动设备上意外调整大小

  16. 16

    UIScrollview内UIView内的UILabel上的UIGestureRecognizer

  17. 17

    在可用空间上扩展分区:调整大小或移动并调整大小或创建新分区?

  18. 18

    在iOS8下使用CGAffineTransform旋转时,UIView不会调整大小

  19. 19

    程序化布局约束导致旋转时不调整基本UIView的大小

  20. 20

    画布和网格之间的差异,以移动,调整大小和旋转UIElement

  21. 21

    如何在Android Studio中通过触摸来移动,旋转和调整文本大小?

  22. 22

    画布和网格之间的差异,以移动,调整大小和旋转UIElement

  23. 23

    在WinForms上绘制大小调整后的图像似乎具有“模糊”边缘

  24. 24

    Matlab图像边缘调整大小/细化

  25. 25

    单击时停止调整边缘大小

  26. 26

    调整从xib创建的UIView的大小?

  27. 27

    调整UIView的大小限制。迅速

  28. 28

    动态调整“容器” UIView的大小

  29. 29

    调整从xib创建的UIView的大小?

热门标签

归档