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