iOS - 在敲击表格单元格时创建弹跳动画两种方法

时间:2016-01-23 05:18:51

标签: ios objective-c uiviewanimation tableviewcell

在我的应用程序中,我实现了Snapchat风格的滑动聊天功能。当用户在朋友UITableViewCell上向右滑动时,顶部UIView会滚动,同时在其后面显示聊天图标图像。当显示完整的聊天图标图像时,用户可以完成滚动到聊天视图。当用户向左滑动以获取有关该朋友的其他信息时,会发生同样的事情。

但是,我担心我的用户不会将此视为直观或明显的功能。 Snapchat也知道这一点,这就是为什么他们在点击时会让朋友UITableViewCell反弹,以便用户提示他们可以滑动聊天。

我需要为我的应用做同样的事情,但当用户点击UIView时,两个方向都会有最高UITableViewCell次反弹。这将提示用户他们可以向右滑动聊天并离开以查看朋友的信息。

我如何完成这项工作?我以前从未做过动画。

进展:

我能够以一种丑陋的方式得到我想要的东西,看起来不像下面代码中的Snapchat蹦蹦跳动画那样:

    //1.)Show full chat icon
    [UIView animateWithDuration:0.25 animations:^{

        self.myContentView.center = CGPointMake(self.myContentView.center.x + self.chatButton.frame.size.width, self.myContentView.center.y);

    } completion:^(BOOL finished) {

        //2.)Show full location icon
        [UIView animateWithDuration:0.25 animations:^{

            self.myContentView.center = CGPointMake(self.myContentView.center.x - self.chatButton.frame.size.width - self.locationButton.frame.size.width, self.myContentView.center.y);

        } completion:^(BOOL finished) {

            //3.)Show half of chat icon
            [UIView animateWithDuration:0.125 animations:^{

                self.myContentView.center = CGPointMake(self.myContentView.center.x + self.locationButton.frame.size.width + self.chatButton.frame.size.width/2, self.myContentView.center.y);

            } completion:^(BOOL finished) {

                //4.)Show half of location icon
                [UIView animateWithDuration:0.125 animations:^{

                    self.myContentView.center = CGPointMake(self.myContentView.center.x - self.chatButton.frame.size.width/2 - self.locationButton.frame.size.width/2, self.myContentView.center.y);

                } completion:^(BOOL finished) {

                    //5.)Show quarter of chat icon
                    [UIView animateWithDuration:0.0625 animations:^{

                        self.myContentView.center = CGPointMake(self.myContentView.center.x + self.locationButton.frame.size.width/2 + self.chatButton.frame.size.width/4, self.myContentView.center.y);

                    } completion:^(BOOL finished) {

                        //6.)Show quarter of location icon
                        [UIView animateWithDuration:0.0625 animations:^{

                            self.myContentView.center = CGPointMake(self.myContentView.center.x - self.chatButton.frame.size.width/4 - self.locationButton.frame.size.width/4, self.myContentView.center.y);

                        } completion:^(BOOL finished) {

                            //7.)Return to normal state/position
                            [UIView animateWithDuration:0.03125 animations:^{

                                self.myContentView.center = CGPointMake(self.myContentView.center.x + self.locationButton.frame.size.width/4, self.myContentView.center.y);

                            }];

                        }];

                    }];

                }];

            }];

        }];

    }];

我不喜欢我必须嵌套所有这些动画。有更简单的方法吗?也许我错过了Apple为其开发人员提供的弹性或弹性动画?

0 个答案:

没有答案