Перетаскивание UITableView

Я работаю над приложением для iPhone, где я хочу перетащить представление таблицы (а не ячейки) до определенной точки на экране. У меня есть табличное представление, сидящее в нижней половине экрана, и у меня есть изображение в верхней половине.

Когда я прокручиваю таблицу, чтобы увидеть строки ниже, таблица должна на самом деле двигаться вверх над изображением (y pos уменьшается, а высота увеличивается). Таблица будет подниматься до тех пор, пока не заполнит весь экран, оставляя несколько пикселей для изображения, и она закрепится там, и с этого момента таблица должна прокручиваться. Такое же поведение ожидается и для прокрутки вниз.

Это может звучать немного странно, но это новый шаблон iOS, которыйпоявляется.

Мне удалось сделать первую часть, используя фрагмент кода ниже.

UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanForScrollView:)];
panGestureRecognizer.maximumNumberOfTouches = 1;
panGestureRecognizer.delegate = self;
panGestureRecognizer.minimumNumberOfTouches = 1;
[self.tableView addGestureRecognizer:panGestureRecognizer];

- (void)handlePanForScrollView:(UIPanGestureRecognizer *)gesture {
    switch (gesture.state) {
        case UIGestureRecognizerStateBegan:
            break;
        case UIGestureRecognizerStateChanged: {

            CGPoint movement = [gesture translationInView:self.view];
            CGRect frame = self.tableView.frame;
            frame.origin.y += movement.y;
            if(frame.origin.y >= Y_OFFSET && frame.origin.y < self.original_frame.origin.y){
                frame.size.height -= movement.y;
                self.tableView.frame = frame;
                [gesture setTranslation:CGPointZero inView:self.view];
            }
            break;
        }
        case UIGestureRecognizerStateEnded:
        case UIGestureRecognizerStateCancelled:{
            //NSLog(@"End");
            break;
        }
        default:
            ;
            break;
    }
}

Это работает нормально, и таблица перемещается вверх и закрепляется ниже Y_OFFSET. Но, как вы могли себе представить, таблица непрокручиваю больше.

Вот и я попробовал это

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    if(self.tableView.frame.origin.y = self.original_frame.origin.y){
        NSLog(@"Here");
        return YES;
    }   
    return NO;
}

Вот" сообщение выводится на консоль, но таблица нет прокрутка.

Я даже попытался использовать panGestureRecognizer для UITableView вместо моего UIPanGestureRecognizer.

self.tableView.panGestureRecognizer addTarget:self action:@selector(handlePanForScrollView:)

Но теперь стол прокручивается и двигается вверх ».

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

Какие'лучший способ справиться с этим?

ура

Ответы на вопрос(3)

Ваш ответ на вопрос