0

我想让UIButton图像从其当前大小转换为两倍大小,然后恢复到类似于 facebook“喜欢”动画的原始大小。

我正在使用此代码,但由于某种原因它正在执行相反的操作;即首先缩小,然后才再次变大。

我究竟做错了什么?它在 a 上完美运行,uiimageView但在 a 上却不行uibutton

[self.likeButton setClipsToBounds:NO];
CGAffineTransform firstTransform = self.likeButton.imageView.transform;
[UIView animateWithDuration:.15f animations:^{

    self.likeButton.imageView.transform = CGAffineTransformScale(firstTransform, 2, 2);

} completion:^(BOOL finished) {

    [UIView animateWithDuration:.15f animations:^{

        self.likeButton.imageView.transform = firstTransform;
    }];
}];
4

3 回答 3

1

图层有一个属性masksToBounds,而 UIView 有clipsToBounds. 该按钮很可能在主视图或子视图上将这些设置为“是”。您可能会发现哪些将这些设置为“是”,并将它们暂时设置为“否”。

于 2013-06-06T13:46:24.620 回答
1

如果有人有兴趣,我通过在按钮上方添加一个 uiimageview 并为其设置动画而不是按钮图像来解决它。

它是一个黑客,但它的工作。

于 2013-06-09T07:38:21.030 回答
0

//设置button.masktobound=NO

[UIView animateWithDuration:.15f animations:^{

 self.likeButton.imageView.transform = CGAffineTransformMakeScale(2.0,2.0);

} completion:^(BOOL finished) {

[UIView animateWithDuration:.15f animations:^{

    self.likeButton.imageView.transform = CGAffineTransformMakeScale(1.0,1.0);
}];
}];

//尝试这个

于 2013-06-06T13:47:28.653 回答