我想创建一个效果,其中按钮的图像滑入/滑出按钮rect,最终效果应如下所示:
所以第一个刚刚开始它的“过渡”,第二个是中途,最后一个完全滑出。
为实现这一目标,我将按钮的 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仅在按钮处于默认的非活动状态时使用?可以轻松修复吗?