Iphone Can';t触摸UIScrollView上的UITextField

Iphone Can';t触摸UIScrollView上的UITextField,iphone,uiscrollview,uitextfield,textfield,scrollview,Iphone,Uiscrollview,Uitextfield,Textfield,Scrollview,我知道这已经被谈论了很多。我想我已经浏览了这个网站上的每一个问题,但仍然无法让它正常工作 我是开发新手,但我对我所有的代码都有很好的了解。我肯定没有太多的经验,不过,这是我的第一个iPhone应用程序 我正在创建一个由UIScrollView中的多个UITextFields组成的数据输入字段。现在我将避免解释其他细节,因为这似乎是一个非常基本的问题。如果没有滚动视图,文本字段可以完美地工作。我可以触摸文本字段,键盘或选择器视图会相应显示。当我将文本字段添加到scrollview时,scrollv

我知道这已经被谈论了很多。我想我已经浏览了这个网站上的每一个问题,但仍然无法让它正常工作

我是开发新手,但我对我所有的代码都有很好的了解。我肯定没有太多的经验,不过,这是我的第一个iPhone应用程序

我正在创建一个由UIScrollView中的多个UITextFields组成的数据输入字段。现在我将避免解释其他细节,因为这似乎是一个非常基本的问题。如果没有滚动视图,文本字段可以完美地工作。我可以触摸文本字段,键盘或选择器视图会相应显示。当我将文本字段添加到scrollview时,scrollview会工作,但是文本字段不会收到我的触摸。
关键是:启用“用户交互”时,scrollview可以工作,但textfield触摸未注册。当“用户交互”被禁用时,scrollview不工作,但textfield触摸被注册,键盘/选择器弹出

在其他帖子中,我看到人们创建子类,并在一个单独的实现中覆盖这些内容。我见过人们使用自定义内容视图(子视图?),我见过一些解决方案现在已经过时,因为API在SDK的较新版本中发生了更改,我完全被卡住了

我将暂时省去我的代码,因为可能有一个解决方案,有人不需要我的代码。如果有人需要看我的代码,我会把它放上去。我的应用程序正在3.1.3 SDK中编写


如果有人能提供任何有帮助的信息,我们将不胜感激。

听起来您正在使用IB来完成许多UI布局。如果采用编程方法,则可以设置以下视图层次结构,这样应该可以工作

管理滚动视图和文本字段的视图控制器对象应具有
UIScrollView
对象和
UIView
对象(以及所需的任何
UITextField
对象)。在视图控制器类的loadView方法中,分配并初始化
UIView
对象,并将文本字段作为子视图添加到其中。在方法的末尾,分配并初始化
UIScrollView
对象,然后将
UIView
作为子视图添加到
UIScrollView

例如,如果您的
UIScrollView
对象被称为scrollView,而
UIView
对象被称为mainView,则视图控制器的loadView方法末尾的以下几行将正确设置滚动视图和主视图,主视图上有文本字段:

scrollView = [[UIScrollView alloc] initWithFrame: [[UIScreen mainScreen] bounds] ];
scrollView.backgroundColor = [UIColor whiteColor];
scrollView.contentSize = mainView.frame.size;
[scrollView addSubview: mainView];
self.view = scrollView;

您可能需要根据需要启用/禁用滚动视图和文本字段的用户交互

如果可能的话,您最好对每个进程使用不同的触摸机制(滚动和文本字段输入)

也许您可以检查触摸开始和结束之间的时间差,以便检测拖动(滚动)和点击(文本输入)之间的差异

话虽如此,如果您将润色从文本字段传播到scrollview,您应该会很好。我使用的一个方法是:

[myObject addTarget:self action:@selector(itemTouchedUpInside:) forControlEvents:UIControlEventTouchUpInside];

通过触摸的对象,您可以识别它并相应地采取行动。

以下是我在
Xcode 4.3.3
中的工作原理


在情节提要中,选择您的
滚动视图
。选择右侧的
属性检查器
。取消选中
延迟内容接触

非常感谢!这应该是正确的答案,我做到了,终于成功了!!!真的非常感谢!