制作一些可拖动的UIView

kusumoto_teruya

我想制作一些可拖动的UIView。
但是,如果遵循以下代码,则只能拖动最后添加的一个UIView。

在此处输入图片说明

我有这个代码。
LabelView类是UIView的子类。

ViewControlle.h

@interface ViewController : UIViewController

@property (nonatomic, strong) LabelView* labelView;

@end

ViewController.m

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    _labelView = [[LabelView alloc]initWithFrame:CGRectMake(100, 200, 200, 50)];
    [self.view addSubview:_labelView];

    UIPanGestureRecognizer* pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAction:)];
    [_labelView addGestureRecognizer:pan];

    UIButton* addButton = [[UIButton alloc]initWithFrame:CGRectMake(270, 60, 40, 40)];
    [addButton addTarget:self action:@selector(newLabelView) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:addButton];
}

- (void)panAction:(UIPanGestureRecognizer *)sender
{
    CGPoint p = [sender translationInView:self.view];
    CGPoint movedPoint = CGPointMake(_labelView.center.x + p.x, _labelView.center.y + p.y);
    _labelView.center = movedPoint;
    [sender setTranslation:CGPointZero inView:self.view];
}

- (void)newLabelView
{
    _labelView = [[LabelView alloc]initWithFrame:CGRectMake(20, 60, 200, 50)];
    [self.view addSubview:_labelView];
    UIPanGestureRecognizer* pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAction:)];
    [_labelView addGestureRecognizer:pan];
}
用户名

您可以创建一个可变数组,然后将每个新视图添加到该数组中。您可以通过添加以下内容来做到这一点:

NSMutableArray *viewsArray = [[NSMutableArray alloc] init];
// after creating the custom view
[viewsArray addObject:customView];

然后,您可以在数组视图的顶部添加平移手势,这样它们都可以使用平移手势

for(LabelView *l in viewsArray) {
    [l addGestureRecognizer:panGestureRecognizer];
}

这会将UIPanGestureRecognizer添加到您在此答案开头创建的数组中的所有自定义视图中。

希望这可以帮助!

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

制作一些可拖动的UIView

来自分类Dev

在 UITabViewController 中制作一些但不是所有的标签可重新排序

来自分类Dev

制作可拖动的UIView捕捉到iOS中的边缘

来自分类Dev

Qt5-如何在无框窗口中指定一些可拖动区域?

来自分类Dev

从一些 RAM + 一些 SSD 制作临时虚拟 RAM 磁盘

来自分类Dev

制作一个div,其中包含可拖动的img

来自分类Dev

用表中的一些值制作图表

来自分类Dev

从用foreach制作的数组中排除一些$ _POST

来自分类Dev

请提及一些用于ubuntu的音乐制作软件

来自分类Dev

使用 viewdidload 在 UIView 中显示一些元素

来自分类Dev

一些可反应的可可设计模式问题

来自分类Dev

创建可启动USB时遇到一些麻烦

来自分类Dev

用一些RAM +一些SSD制作一个临时的虚拟RAM磁盘

来自分类Dev

向下拖动公式,同时保留一些值,但更改另一个

来自分类Dev

如何使用jframe制作一些特定的宽度和高度以及一些自动-Java

来自分类Dev

如何使用jframe制作一些特定的宽度和高度以及一些自动-Java

来自分类Dev

如何向下拖动公式并保留一些行为空白,但按顺序计数数字?

来自分类Dev

如何从可拖动项目制作可拖动项目?

来自分类Dev

一些弹性字段 DSL 查询可搜索,有些则不可搜索

来自分类Dev

我如何使用display:flex制作一些文本的一半布局?

来自分类Dev

如何制作一个查找xinput设备ID并设置xinput一些设置的程序

来自分类Dev

如何制作一个文件来打开终端并运行一些命令

来自分类Dev

使用 Realm Swift 中的结果中的一些项目制作一个列表

来自分类Dev

创建一个透明的UIView,其中包含一些信息

来自分类Dev

使用JavaScript制作可拖动的JSXGraph

来自分类Dev

动态/可拖动UIView的自动布局

来自分类Dev

动态/可拖动UIView的自动布局

来自分类Dev

可拖动的UIView移动不正确

来自分类Dev

带有uitextview的可拖动uiview

Related 相关文章

  1. 1

    制作一些可拖动的UIView

  2. 2

    在 UITabViewController 中制作一些但不是所有的标签可重新排序

  3. 3

    制作可拖动的UIView捕捉到iOS中的边缘

  4. 4

    Qt5-如何在无框窗口中指定一些可拖动区域?

  5. 5

    从一些 RAM + 一些 SSD 制作临时虚拟 RAM 磁盘

  6. 6

    制作一个div,其中包含可拖动的img

  7. 7

    用表中的一些值制作图表

  8. 8

    从用foreach制作的数组中排除一些$ _POST

  9. 9

    请提及一些用于ubuntu的音乐制作软件

  10. 10

    使用 viewdidload 在 UIView 中显示一些元素

  11. 11

    一些可反应的可可设计模式问题

  12. 12

    创建可启动USB时遇到一些麻烦

  13. 13

    用一些RAM +一些SSD制作一个临时的虚拟RAM磁盘

  14. 14

    向下拖动公式,同时保留一些值,但更改另一个

  15. 15

    如何使用jframe制作一些特定的宽度和高度以及一些自动-Java

  16. 16

    如何使用jframe制作一些特定的宽度和高度以及一些自动-Java

  17. 17

    如何向下拖动公式并保留一些行为空白,但按顺序计数数字?

  18. 18

    如何从可拖动项目制作可拖动项目?

  19. 19

    一些弹性字段 DSL 查询可搜索,有些则不可搜索

  20. 20

    我如何使用display:flex制作一些文本的一半布局?

  21. 21

    如何制作一个查找xinput设备ID并设置xinput一些设置的程序

  22. 22

    如何制作一个文件来打开终端并运行一些命令

  23. 23

    使用 Realm Swift 中的结果中的一些项目制作一个列表

  24. 24

    创建一个透明的UIView,其中包含一些信息

  25. 25

    使用JavaScript制作可拖动的JSXGraph

  26. 26

    动态/可拖动UIView的自动布局

  27. 27

    动态/可拖动UIView的自动布局

  28. 28

    可拖动的UIView移动不正确

  29. 29

    带有uitextview的可拖动uiview

热门标签

归档