[objective-c]正确使用 CGAffineTransformMakeScale

标签: ios Objective-C
发布时间: 2016/10/4 7:51:52
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有 UIButton 使用 storyboard 。该按钮只是包含一个图像。当单击该按钮时,我想动画按钮的大小 — — 减少在大小,然后再把它带回原来的大小。

我用下面的代码-

[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 Constraintstoryboard 按钮。我如何可以改善这种行为呢?

解决方法 1:

如果你有自动布局打开,你将需要把它关掉。

但它似乎并不向你根据你的描述的问题。

我会做以下操作以重新调整到中心缩放︰

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;
    }];
}];

希望这有助于。

赞助商