2013-06-27 1 views
0

У меня есть пользовательские перетаскиваемые UITextViews, а последний перетаскиваемый UITextView имеет самое большое zPosition (textView.layer.zPosition), чтобы убедиться, что оно появляется поверх других текстовых экранов, но когда я перетащить textViews друг на друга, а затем попытаться переместить один из них сверху, последний добавленный (для просмотра) textView hitTest запускается первым, и приложение решает, что оно попало, даже если мне нужен тот, у которого наибольшее значение zPosition (последний перемещенный)Изменение последовательности тестового теста для просмотра друг на друга

Я попытался модифицировать Трассировка, чтобы проверить, есть ли другие TextViews на сенсорном месте с большим zPosition, но Трассировка дает местоположение на основе границ TextView (в верхнем левом углу х = 0 у = 0)

Так есть ли способ, чтобы изменить последовательность ударила тест проходит, не снимая вид и добавить его снова, или вы можете придумать другой способ, чтобы убедиться, правильный взгляд получает удар

example situation

ответ

1

Хорошо, я исправил hitTest, используя собственный кадр textView. Поскольку точка из Трассировка дает мне местоположение на основе границ 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, и возвращается ноль, если были

0

Использование bringSubviewToFront на вашей надтаблицу с последний переехал UITextView.

+0

я попробовать, что, не работает – Efesus

+0

он должен работать, можете ли вы добавить образец проекта или соответствующий исходный код? – Danilo

+0

Я использовал [editView bringSubviewToFront: [textViewArray objectAtIndexPath: maxZPositionTextView]] каждый раз, когда был выбран textView, но он не работал – Efesus