1

我想创建一个按钮图像滑入/滑出按钮矩形的效果,最终效果应如下所示:

滑动按钮

所以第一个刚刚开始它的“过渡”,第二个是一半,最后一个完全滑出。

为此,我将按钮的clipsToBounds属性设置为YES,然后为按钮的imageView设置动画:

- (void)setupButtons
{
self.buttonsYOffset = -60.0;
self.buttonsOriginalY = self.twitterButton.imageView.center.y;

self.twitterButton.clipsToBounds = YES;
self.twitterButton.imageView.center = CGPointMake(self.twitterButton.imageView.center.x, self.buttonsOriginalY + self.buttonsYOffset);
}

和:

- (void)show
{
[UIView animateWithDuration:0.2 delay:0
    options:UIViewAnimationOptionCurveEaseOut
    animations:^ {
        self.twitterButton.imageView.alpha = 1.0;
        self.twitterButton.imageView.center = CGPointMake(self.twitterButton.imageView.center.x, self.buttonsOriginalY);
    }
    completion:^(BOOL success) {
    }
 ];
}

- (void)hide
{
[UIView animateWithDuration:0.2 delay:0.0
    options:UIViewAnimationOptionCurveEaseOut
     animations:^ {
         self.twitterButton.imageView.center = CGPointMake(self.twitterButton.imageView.center.x, self.buttonsOriginalY + self.buttonsYOffset);
     }
     completion:^(BOOL success) {

     }
 ];
}

如果我在按钮处于“非活动”状态(未点击)时触发此代码,一切正常 - 它滑入和滑出就好了。

当我在点击按钮后立即触发hide()方法时,问题就开始了 - 它不会滑出 - 只是突出显示一秒钟,它的图像会在“打开”位置停留一段时间,然后跳到“关闭”位置立即地。

似乎按钮的 imageView 仅在按钮处于默认非活动状态时才使用?可以轻松修复吗?

4

0 回答 0