我最近问了这个问题,但在提出这个问题方面表现不佳。我希望能得到一些帮助,在此重申它。
我正在写一个卡片应用程序,并在某些点移动卡片的动画。在我的代码中的某个点上,我得到一些不需要的动画,当卡片不应该移动时。
我的应用中的动画来自以下代码:
playersCards是一个UIImageView数组
func moveCardUpDown(cardNum : Int, moveUp : Bool) {
let moveCard = playerCards[cardNum]
var moveInc = 0
// -20 = Move Up, +20 = Move down
if moveUp {
moveInc = -20
}
else {
moveInc = 20
}
//Animate the card
UIView.animate(withDuration: 0.5, animations: {
var newCenter = moveCard.center
newCenter.y += CGFloat(moveInc)
moveCard.center = newCenter
}, completion: { finished in
//print("Card Moved")
})
}
上面的代码,当被调用时,按照我想要的方式移动所需的卡片 被移动。
然后我尝试将图像放入经销商的卡片中,不使用动画,(dealerCards也是UIImageView的数组)。发生的不需要的动画是,只要执行下面的代码行,就会移动玩家手中的牌。这条线当然是一个循环,但即使我只是执行相同的事情并且玩家手中的牌被移动。 cardImage是一个包含卡名称的有效String。
dealerCards[i].image = UIImage(named: cardImage)! as UIImage
答案 0 :(得分:0)
经过一个星期左右的时间,我发现了这个问题。您必须取消选中Mainstoryboard上的Auto Layout。
这是指向同一问题的旧答案的链接:http://www.raywenderlich.com/17811/how-to-make-a-simple-mac-app-on-os-x-10-7-tutorial-part-13/smat-disable-autolayout