Instagram / FB-как задняя навигация с анимацией - PullRequest
0 голосов
/ 07 октября 2019

Мне нужно добавить навигацию назад при смахивании. Я могу сделать это довольно легко, просто добавив прослушиватель смахивания к просмотру страницы и вызвав goBack. Но мне бы очень хотелось анимации, которая идет вместе с ней (в Instagram или FB), где, как только вы начинаете перетаскивать большой палец, страница переводится вправо, а предыдущая страница начинает переводиться в вид. И затем, как только вы доберетесь до определенной точки, он на самом деле выполняет навигацию.

Я попытался анимировать страницу, а также рисунок справа, поскольку вид не разрушен, это может сработать. Но он не отображает страницу, к которой я возвращаюсь.

Нужна помощь, как это сделать!

What it looks like in instagram

1 Ответ

1 голос
/ 07 октября 2019

Полагаю, вы, возможно, сталкивались с другой SO-веткой , которая ответила на этот вопрос изначально.

Все, что вам нужно сделать, - это изменить распознаватель жестов по умолчанию на фрейме iOS.

export function onNavigatedFrom(args: EventData) {
    console.log("Adding gesture...");
    const frame = (<Page>args.object).frame;
    if (frame.ios && !(<any>frame)._gestureRecognizer) {
        const controller = frame.ios.controller;
        const popGestureRecognizer = controller.interactivePopGestureRecognizer;
        const targets = popGestureRecognizer.valueForKey("targets");
        if (targets) {
            let gestureRecognizer = UIPanGestureRecognizer.alloc().init();
            gestureRecognizer.setValueForKey(targets, "targets");
            frame.nativeView.addGestureRecognizer(gestureRecognizer);
            (<any>frame)._gestureRecognizer = gestureRecognizer;
        }
    }
}

export function onNavigatedTo(args: EventData) {
    console.log("Back to root page, removing gesture...");
    const frame = (<Page>args.object).frame;
    if (frame.ios && (<any>frame)._gestureRecognizer) {
        frame.nativeView.removeGestureRecognizer((<any>frame)._gestureRecognizer);
        (<any>frame)._gestureRecognizer = null;
    }
}

Образец игровой площадки

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