Tag: uiresponder

InputAccessoryView停靠在底部

我试图达到类似苹果的消息应用程序的底部文本input栏的定位行为。 我尝试了很多方法,search高低,有许多类似的问题,但没有一个是令人满意的。 要指定: 在视图的底部有一个UIToolbar 当键盘出现并消失时,工具栏将跟随键盘 当键盘可见时,工具栏应该保持在键盘的顶部 当键盘被隐藏时,工具栏保持(“停放”)在视图的底部 build议的解决scheme: 响应键盘显示通知,手动设置工具栏的animation 此解决scheme不符合第二个要求的特殊情况( 工具栏将在键盘出现并消失时跟随键盘 ): 在iOS 7中,引入了UIScrollViewKeyboardDismissMode 。 它启用交互式手势来解除键盘。 随着用户翻过键盘的上边缘,键盘框架逐渐跟随。 这个解决scheme没有任何东西来适应这种行为,只是把工具栏留在它的animation位置。 另外,这个解决scheme也不能满足第三个要求的特殊情况( 当键盘可见时,工具栏应该保持在键盘顶部 ): 回转。 这个解决scheme需要额外的,烦人的无关代码(我们将在下一个build议的解决scheme中看到)旋转工具栏以响应设备旋转。 解决scheme的另一个问题是: 键盘高度。 有了这个解决scheme,工具栏并不被认为是键盘高度的一部分,所以必须编写额外的代码来支持内容的正确插入。 下一个build议的解 使用UIResponder的inputAccessoryView 这个解决scheme似乎是苹果打算支持这种行为的方式,因为它解决了手动设置工具栏的所有缺点。 但是这个解决scheme完全不符合第四个要求( 当键盘被隐藏时,工具栏停留在视图的底部(“停靠”) )。 看来解决scheme是使用UIResponder的inputAccessoryView ,但不知何故使inputAccessoryView不能移动到视图下方。 我正在寻找干净的代码来完成这一点。 在其他地方有精心的,几乎是高尚的尝试,但如前所述,他们不符合要求。 在我的具体情况下,我正在寻找使用UINavigationController的工具栏,这需要额外的问题,因为这不是UINavigationController行为。 无论如何,我愿意介绍一些哈克修补程序来实现这一点。

UIGestureRecognizer阻止子视图处理触摸事件

我试图弄清楚这是如何做到正确的 。 我试图描绘的情况: 我添加一个UITableView作为UIView的子视图。 UIView响应pinchGestureRecognizer和pinchGestureRecognizer ,但是当这样做时,tableview停止对这两个手势作出反应(它仍然对滑动作出反应)。 我已经使它与下面的代码工作,但它显然不是一个很好的解决scheme,我敢肯定有一个更好的方法。 这是放在UIView (超级视图): -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { if([super hitTest:point withEvent:event] == self) { for (id gesture in self.gestureRecognizers) { [gesture setEnabled:YES]; } return self; } for (id gesture in self.gestureRecognizers) { [gesture setEnabled:NO]; } return [self.subviews lastObject]; }

当父视图在iOS中将userInteractionEnabled设置为NO时,如何获得触摸

当父视图的userInteractionEnabled = NO时,即使其userInteractionEnabled属性设置为YES,其子视图也不会接受触摸事件。 有什么办法仍然可以在子视图中触摸事件?

如何忽略触摸事件并将它们传递给另一个子视图的UIControl对象?

我有一个自定义的UIViewController其UIView占据了屏幕的一angular,但其中大部分是透明的,除了它的一些button和东西的部分。 由于该视图上的对象的布局,视图的框架可以掩盖它下面的一些button。 我希望能够忽略对这个视图的任何接触,如果他们没有触及任何重要的东西,但我似乎只能够传递实际的触摸事件(touchesEnded / nextResponder的东西)。 如果我有一个UIButton或类似的东西不使用touchesEnded,我怎样才能通过触摸事件呢? 我不能手动弄清楚buttonselect器的调用,因为这个自定义的ViewController可以用在许多不同的视图上。 我基本上需要一种方法来调用这个: [self.nextResponder touchesEnded:touches withEvent:event]; 在UIControltypes以及。