search

Home  >  Q&A  >  body text

objective-c - 新手求教网易新闻中效果实现

在网易新闻客户端中,具体一篇新闻里,用手势右滑,返回列表,左滑出现评论页,顶部的 navigation也能跟着一起动,这种效果怎么实现的,有具体实例更好,求教

PHPzPHPz2823 days ago989

reply all(1)I'll reply

  • 黄舟

    黄舟2017-04-21 11:21:07

    Let me talk about how to implement this on iOS.

    Generally, this kind of app uses a navigation controller, uses a tableview to display a list of news titles, and clicks to display the news text.

    Your question is how to implement left and right swiping, such as in the view of the news text
    Add

    in viewDidLoad
    //........towards right Gesture recogniser for swiping.....//
        UISwipeGestureRecognizer *rightRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipeHandle:)];
        rightRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
        [rightRecognizer setNumberOfTouchesRequired:1];
        [self.view addGestureRecognizer:rightRecognizer];
        //[rightRecognizer release];
    
        //........towards left Gesture recogniser for swiping.....//
        UISwipeGestureRecognizer *leftRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(leftSwipeHandle:)];
        leftRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;
        [leftRecognizer setNumberOfTouchesRequired:1];
        [self.view addGestureRecognizer:leftRecognizer];
        //[leftRecognizer release];
        [self.navigationController setNavigationBarHidden:YES animated:YES];
    

    Then you can define the implementation of left and right sliding (implemented with segue in iOS)

        - (void)rightSwipeHandle:(UISwipeGestureRecognizer*)gestureRecognizer
    {
        [self.navigationController popViewControllerAnimated:YES];
    }
    
    - (void)leftSwipeHandle:(UISwipeGestureRecognizer*)gestureRecognizer
    {
        [self performSegueWithIdentifier:@"forward" sender:self];
    }
    

    This is a thumbnail of the storyboard, you can clearly see the logic of the entire app.

    I wrote out the prototype by the way. The source code is here. Please look at the source code carefully. I hope it will be helpful to you.

    reply
    0
  • Cancelreply