我有自定义可拖动的UITextViews,最新拖动的UITextView有最大的zPosition(textView.layer.zPosition),以确保它出现在其他textViews之上,但当我将textViews拖到彼此之上,然后尝试移动一个出现在顶部,最新添加(到superview)textView的hitTest首先运行,应用程序决定它被击中,即使我需要一个最大的zPosition(最新移动的)
我尝试修改hitTest以检查触摸位置上是否有其他textViews具有更大的zPosition,但hitTest根据textView的边界给出位置(左上角是x = 0 y = 0)
那么有没有办法改变序列命中测试运行而不删除视图并再次添加它,或者你能想到另一种方法来确保正确的视图被击中
答案 0 :(得分:1)
好的,我使用textView自己的框架修复了hitTest。因为来自hittest的点是基于textView的界限给我的位置,
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
//Real location of point in superview
CGPoint pointInEditingView = CGPointMake(self.frame.origin.x+point.x, self.frame.origin.y+point.y);
然后我检查了触摸位置上是否有其他textViews具有更大的zPosition值,如果有
则返回nil答案 1 :(得分:0)
使用最新移动的bringSubviewToFront
在您的超级视图中使用UITextView
。