动画后UITextView不响应触摸事件
Posted
技术标签:
【中文标题】动画后UITextView不响应触摸事件【英文标题】:UITextView not Responding to Touch Events after Animation 【发布时间】: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 位于每个项目的前面。 【参考方案1】:我猜,TextView
的新位置可能会被其他视图覆盖。检查任何其他View
在您的TextView
新位置上是否具有相同的框架。使用clipsToBounds
属性找到它。
【讨论】:
您的回答帮助我弄清楚了。似乎我没有拉伸包含这些视图的 UIView,因此它们没有响应触摸事件。我不知道如果一个视图超出了它的超级视图,它仍然会出现在屏幕上......谢谢 Arthan @Alan :你是如何解决这个错误的?我也有类似的问题***.com/questions/18993151/… @FahimParker 基本上 textview 在包含它的视图之外。例如,如果您将 textview 添加到 (0,0, 100, 100) 的视图中。如果我告诉 textview 转到 (150, 150, 100, 100),它仍然会显示在屏幕上,因为它在 iPhone 屏幕的范围内。但是,如果 textview 不在它被添加到的 UIView 的范围内,它将不会响应触摸事件。基本上我所做的只是调整其父视图的大小,以便 UITextview 始终保持在边界内。以上是关于动画后UITextView不响应触摸事件的主要内容,如果未能解决你的问题,请参考以下文章