【问题标题】:animation: stop reset position of an element (swift)动画:停止元素的重置位置(swift)
【发布时间】:2016-08-13 11:07:06
【问题描述】:

我正在尝试动画,但我遇到了一个大问题:当我的动画完成并且我做某事(触摸屏幕等)时,元素会将它们的位置重置为它们的第一个位置。 我发现了这个:[博客]:Animation Blocks resets to original position after updating text 他们说这是因为元素有约束或自动布局,所以关闭它来修复它,但我不想关闭它。 我们可以以编程方式更新约束吗? 还有其他解决方案吗?

这是我的动画:

@IBOutlet var tfUser: UITextfiled!

 override func viewDidLoad() {
    super.viewDidLoad()

}

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
tfUser.center.x += view.bounds.width
}


override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)

     UIView.animateWithDuration(2, delay: 1.8, options: [.CurveEaseInOut], animations: {
        self.tfUser.center.x += self.view.bounds.width
        //self.tfUser.frame = CGRectMake(0, 233, 375 , 89)
       // i tried CGRectMake but it delete the animation
        }, completion: nil)
}

【问题讨论】:

  • 使用 UIView 的 translatesAutoresizingMaskIntoConstraints 属性。像这样self.tfUser.translatesAutoresizingMaskIntoConstraints = false;
  • 非常感谢,成功了!!

标签: swift animation


【解决方案1】:

在评论我的问题时,@Hardik Shekhat 告诉使用:

self.tfUser.translatesAutoresizingMaskIntoConstraints = true

它对我有用!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多