按钮不会改变动画中的宽度

时间:2015-08-21 15:21:42

标签: ios swift animation uibutton

我有一个按钮,当我按下它时,我想缩小宽度。但是,我目前的方法(以及我在网上到处看到的方法)似乎不起作用。

这是方法

@IBAction func addToOrderPressed(sender: AnyObject) {

        UIView.animateWithDuration(1.0, animations: {
            self.addToOrderButton.frame = CGRectMake(
                    self.addToOrderButton.frame.origin.x,
                    self.addToOrderButton.frame.origin.y,
                    self.addToOrderButton.frame.size.width - 100,
                    self.addToOrderButton.frame.size.height)
        })
        self.addProductToCart(productAtIndex)

        println("[Info] Product Added: \(productAtIndex.title)")
        println("[Info] Cart Count: \(self.dm.cartItems.count)")
    }

按钮点击,其他操作运行,但按钮保持相同的大小。

我在这个按钮上使用约束,这是一个屏幕截图,显示我正在使用的那些:

enter image description here

问题可能是约束优先于尺寸变化吗?

1 个答案:

答案 0 :(得分:1)

如果对按钮使用自动布局,则需要更改宽度约束。首先,您可以为按钮宽度约束创建IBOutlet NSLayoutConstraint。

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *widthConstraint;

[self.view setNeedsUpdateConstraints];
[self.view layoutIfNeeded];
UIView.animateWithDuration(1.0, animations: {
     widthConstraint = widthConstraint - 100
     [self.view layoutIfNeeded];
})