Swift动画不粘[重复]
Posted
技术标签:
【中文标题】Swift动画不粘[重复]【英文标题】:Swift animation not sticking [duplicate] 【发布时间】:2014-10-18 17:54:00 【问题描述】:单击时我有一个按钮我使用以下代码将带有动画的 imageView 移动到屏幕上的另一个位置:
@IBOutlet var CurrentPlayerTotal: UILabel!
@IBOutlet var Player1: UIImageView!
UIImageView.animateWithDuration(1.0, animations:
self.Player1.frame = CGRect(x: 16, y: 178, width: 250, height: 350)
)
图像移动良好。
我有另一个按钮可以更新屏幕上的标签。
@IBAction func Sub1(sender: AnyObject)
currentTotal -= 1
CurrentPlayerTotal.text = "\(currentTotal )"
当我单击此按钮时,图像会返回到原始位置。为什么会这样?
这里有更完整的代码sn-p
var currentTotal : Int = 0
var currentPlayer : Int = 1
var numberOfPlayers : Int = 6
@IBOutlet var CurrentPlayerTotal: UILabel!
@IBOutlet var CurrentPlayerNme: UILabel!
@IBOutlet var Player1: UIImageView!
override func viewDidAppear(animated: Bool)
UIImageView.animateWithDuration(1, delay: 1.0, options: .CurveEaseOut, animations:
var player = self.Player1.frame
player = CGRect(x: 16, y: 178, width: 250, height: 350)
self.Player1.frame = player
, completion: finished in
println("done")
)
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// SUBTRACT
@IBAction func Sub1(sender: AnyObject)
currentTotal -= 1
CurrentPlayerTotal.text = "\(currentTotal )"
应用程序开始将图像移动到正确的位置。当我点击绑定到 Sub1 函数的按钮时,图像会弹回到原来的位置。
【问题讨论】:
感谢您指出答案。这为我提供了解决方案 【参考方案1】:如果第一个可行就试试,否则试试第二个,肯定会成功。
self.player1.layoutIfNeeded()
self.player1 setNeedsDisplay()
为 uiimageview 制作 NSLayoutConstraint 的出口,并根据您的需要加/减它,而不是改变 uimageview 的框架。
【讨论】:
我是否在动画之后放置选项#1?选项 #2 我不明白。 option#1 你可以在动画块中或之后使用 option#2 为 uiimageview 创建一个左约束,然后创建这个约束的出口,希望你明白我的意思。 解决了你的问题吗? 不,还没有,如果可能的话,我想使用动画。 在上面添加了更多有问题的代码。以上是关于Swift动画不粘[重复]的主要内容,如果未能解决你的问题,请参考以下文章