Как распознать жест Touch Up Inside от UITouch - PullRequest
3 голосов
/ 07 февраля 2010

Я делаю вид сетки. Он подклассов таблицы и выкладывает несколько ячеек (столбцов) на ячейку. Это все работает нормально.

Теперь мне нужно определить, когда нажата отдельная ячейка. Я переопределил прикосновения, закругленные в виде сетки. Есть ли способ, которым я могу взять эти NSSet из UITouch объектов и определить, было ли это касание внутри или какой-то другой жест?

Я мог бы написать собственный код, но было бы трудно сделать его идеальным.

Ответы [ 3 ]

1 голос
/ 08 февраля 2010

UIControlEvents подобно UIControlEventTouchUpInside используются с UIControl объектами. В UIView вам нужно будет провести собственное тестирование.

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

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    if ([touches count] == 1) {
        UITouch * touch = [touches anyObject];
        if ([touch tapCount] == 1) {
            // This is a simple tap
            CGPoint point = [touch locationInView:self.view];
            GridCell * cell = nil;
            for (GridCell * aCell in cells) {
                if (CGRectContainsPoint(aCell.frame, point)) {
                    cell = aCell;
                    break;
                }
            }
            if (cell) {
                // The tap was inside this cell
            }
        }

    }
}
0 голосов
/ 07 февраля 2010

Исходя из моего опыта, вам нужно создать пользовательское представление для каждой ячейки, а не создавать подклассы TableView для получения событий. Благодаря этому вы получаете полный контроль над всеми интересующими вас событиями. Тогда вы решите выложить их на экране, это не очень сложно реализовать.

Но давайте посмотрим на ответы других, если таковые имеются;)

0 голосов
/ 07 февраля 2010

Предполагая, что вы поддерживаете только одно касание в представлении, touchesEnded означает, что пользователь убрал палец из вида. Независимо от того, находится ли касание внутри или снаружи вида, или в определенной части вида, вы должны проверить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...