【问题标题】:UITextView not Responding to Touch Events after Animation动画后UITextView不响应触摸事件
【发布时间】:2012-12-18 23:59:05
【问题描述】:

如果我展开视图,我正在执行动画以正确地将UITextView 保持在屏幕底部。出于某种原因,如果我执行动画,UITextView 停止响应触摸事件,因此不会出现键盘。

我所做的只是:

CGRect newSendTextView = self.commTextView.frame;
newSendTextView.origin.y = (newSendTextView.origin.y + (height - self.defaultSize.size.height));

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.5];
self.commTextView.frame = newSendTextView;
[UIView commitAnimations];

我知道UITextView 在我进行转换后仍在屏幕上,因为我将UITextView 背景着色为亮蓝色,但它不想响应任何触摸事件。

如果我注释掉 self.commTextView.frame = newSendTextView; 使其不动,触摸事件就会注册。

我不知道为什么会这样,我试过了

[self.commTextView becomeFirstRespond];

我检查了 isEditable 和 isUserInteractionEnabled 是否设置为 1 并且确实如此。

【问题讨论】:

  • 你的 UITextView 前面有对象吗?也许你有一个透明的 UIView,在这种情况下你无法访问它
  • @MouhamadLamaa 不,我查过了。没有透明视图,在 IB 中 TextView 位于每个项目的前面。

标签: objective-c ios xcode animation uitextview


【解决方案1】:

我猜,TextView 的新位置可能会被其他视图覆盖。检查任何其他View 在您的TextView 新位置上是否具有相同的框架。使用clipsToBounds 属性找到它。

【讨论】:

  • 您的回答帮助我弄清楚了。似乎我没有拉伸包含这些视图的 UIView,因此它们没有响应触摸事件。我不知道如果一个视图超出了它的超级视图,它仍然会出现在屏幕上......谢谢 Arthan
  • @Alan :你是如何解决这个错误的?我也有类似的问题stackoverflow.com/questions/18993151/…
  • @FahimParker 基本上 textview 在包含它的视图之外。例如,如果您将 textview 添加到 (0,0, 100, 100) 的视图中。如果我告诉 textview 转到 (150, 150, 100, 100),它仍然会显示在屏幕上,因为它在 iPhone 屏幕的范围内。但是,如果 textview 不在它被添加到的 UIView 的范围内,它将不会响应触摸事件。基本上我所做的只是调整其父视图的大小,以便 UITextview 始终保持在边界内。
猜你喜欢
  • 1970-01-01
  • 2013-01-30
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-08
  • 2016-08-23
相关资源
最近更新 更多