拖动UIView而不禁用其子控件iPhoneiPad

拖动UIView而不禁用其子控件iPhoneiPad,第1张

概述我有一个UIView控件(图像中的白色矩形) 而且我能够拖动那个控件…… 当我按下按钮时,我加载了一个子视图,这是我创建的另一个笔尖,我在其中放置了随机控件以说明我的观点…… 如果你们有兴趣了解我如何将该nib文件放在UIView控件中,请查看this问题.为了理解我的问题,我不需要阅读它. 无论如何,加载该nib文件时的问题是我无法再拖动顶部的UIView.因此,我改变了: 对于: 在子视图的U 我有一个UIVIEw控件(图像中的白色矩形)

而且我能够拖动那个控件……

当我按下按钮时,我加载了一个子视图,这是我创建的另一个笔尖,我在其中放置了随机控件以说明我的观点……

如果你们有兴趣了解我如何将该nib文件放在UIVIEw控件中,请查看this问题.为了理解我的问题,我不需要阅读它.

无论如何,加载该nib文件时的问题是我无法再拖动顶部的UIVIEw.因此,我改变了:

对于:

在子视图的UIVIEw中.换句话说,我将放置在具有白色背景的UIVIEw中的nib文件的UIVIEw.

当我这样做时,我能够拖动控件,但子视图内的控件不再有效.我也尝试将touchesMoved方法放在子视图中,但是当我这样做时,应用程序表现得很奇怪.另外,将nib文件放在UIVIEw控件中的目的是为了避免在几个nib文件上重复相同的拖动功能.

我实际上需要创建一个类似power point演示的应用程序,我需要在用户滑动UIVIEw时更改幻灯片,如果它的绳索小于x,那么我在该uivIEw控制器中加载下一张幻灯片(nib文件).也许有一种更简单的方法来做我需要的东西,但是如果我让这种拖拽工作我就完成了因为我只需要做一次这样的功能.

解决方法 如果要让子视图响应事件,则应该为子视图保留UserInteractionEnabled标志.

实现此目的的一种方法是使用UIGestureRecognizer进行拖动.

UIPanGestureRecognizer非常适合这个(UIGestureRecognizer at apple)

基本上,您将手势识别器附加到要平移的视图,然后调整它在其提供的回调中的位置.

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc]                                      initWithTarget:self action:@selector(handlePanGesture:)];panGesture.minimumNumberOftouches = 1;[draggableSubvIEw addGestureRecognizer:panGesture];[panGesture release];

然后在handlePanGesture方法中,您可以确定用户使用识别器的translateInVIEw方法进行平移的距离,然后相应地转换子视图.

总结

以上是内存溢出为你收集整理的拖动UIView而不禁用其子控件iPhone / iPad全部内容,希望文章能够帮你解决拖动UIView而不禁用其子控件iPhone / iPad所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1079265.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存