正确使用CGAffineTransformMakeScale

时间:2014-04-27 20:23:21

标签: ios objective-c core-animation uiviewanimation cgaffinetransform

我使用故事板制作了UIButton。该按钮只包含一个图像。单击该按钮时,我想设置按钮大小的动画 - 减小尺寸,然后再将其恢复为原始大小。

我使用了以下代码 -

[UIView animateWithDuration:2.0 animations:^{
    _favButton.transform = CGAffineTransformMakeScale(0.5, 0.5);
}completion:^(BOOL finished) {
    [UIView animateWithDuration:2.0 animations:^{
          _favButton.transform = CGAffineTransformMakeScale(1, 1);
    }];
}];

此代码移动我不想要的屏幕上的按钮。我希望修复按钮的center并调整大小。

我没有在故事板中使用任何Top Constraint按钮。我该如何纠正这种行为?

2 个答案:

答案 0 :(得分:8)

如果您启用了自动布局,则需要将其关闭。

但根据你的描述,这似乎不是你的问题。

我会按照以下步骤重新调整到中心:

CGPoint cP = _favButton.center;

[UIView animateWithDuration:2.0 animations:^
{
    _favButton.transform = CGAffineTransformMakeScale(0.5, 0.5);
    _favButton.layer.position = cp;
}
completion:^(BOOL finished) 
{
    [UIView animateWithDuration:2.0 animations:^
    {
        _favButton.transform = CGAffineTransformMakeScale(1, 1);
        _favButton.layer.position = cp;
    }];
}];

希望这有帮助。

答案 1 :(得分:0)

SWIFT 3

button.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)