当UIButton突出显示时,它不会剪切其imageView

时间:2013-01-03 10:03:29

标签: ios uiimageview uibutton clipping

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

sliding buttons

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

为实现这一目标,我将按钮的 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仅在按钮处于默认的非活动状态时使用?可以轻松修复吗?

0 个答案:

没有答案