我正在使用Xcode 6.1在Objective-C中为iPhone 5开发iOS 8.1应用程序。
单击UITextView
时,我会在键盘上方弹出一个不可见的UIControl
视图,以便用户可以从键盘上方向下滑动并关闭键盘(然后移动UIControl
再次退出视图)。这工作正常。但是,弹出键盘上方的UIControl
视图覆盖了另一个UITextView
,因此无法轻触覆盖的文本视图。每当我尝试点击覆盖的文本视图(由于UIControl
不透明而可见时),没有任何反应,因为UIControl
似乎只是采用了水龙头而没有对它们做任何事情。
我的问题是,如何制作它以便UIControl
只是忽略点击(让它们直接通过,以便下面的UITextView
可以接受它们),然后接受滑动(以便,当它向下滑动时,它可以解除键盘并移出视野)?
我已经尝试了几种解决方案但是找不到能够满足我想要的解决方案。
谢谢!
答案 0 :(得分:1)
此question与您的相似。对您的UIControl
进行子类化并覆盖- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
并调用其super
变体将其传递给其视图。
答案 1 :(得分:0)
还有另一种方法可以做到这一点。将UIViewController
的主视图更改为UIControl
的子类,而不是UIView
。将以下IBAction
连接到视图,以便在点按背景时关闭键盘。
- (IBAction)backgroundTapped{
[self.view endEditing:YES];
}
答案 2 :(得分:0)
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
使用此活动。如果点击手势返回否。