Ios 如何在Swift中添加子视图时阻止动画重置。?

Ios 如何在Swift中添加子视图时阻止动画重置。?,ios,swift,animation,addsubview,Ios,Swift,Animation,Addsubview,我试图让项目在云的位置产生。到目前为止,我已经重复了我想要的云动画,但是当我生成一个项目时,云动画从一开始就重置 添加子视图时,我的选项是什么 将viewdilayoutsubviews中的代码移动到viewdiload。这应该能解决你的问题 每次添加新子视图时都会调用方法viewdilayoutsubviews。将viewdilayoutsubviews中的代码移动到viewdiload。这应该能解决你的问题 每次添加新的子视图时,都会调用方法viewdilayoutsubviews。每当添

我试图让项目在云的位置产生。到目前为止,我已经重复了我想要的云动画,但是当我生成一个项目时,云动画从一开始就重置

添加
子视图时,我的选项是什么


viewdilayoutsubviews
中的代码移动到
viewdiload
。这应该能解决你的问题


每次添加新子视图时都会调用方法
viewdilayoutsubviews

viewdilayoutsubviews
中的代码移动到
viewdiload
。这应该能解决你的问题


每次添加新的子视图时,都会调用方法
viewdilayoutsubviews

每当添加子视图时,此行都会重新定位云
gemCloudImage.center.x=100
每当您添加子视图时,此行都会重新定位云
gemCloudImage.center.x=100
我将云的初始x位置放入动画函数中,并将其移动到viewDidLoad中。它现在工作得很好!我将云的初始X位置放置到动画函数中,并将其移动到viewDidLoad中。它现在工作得很好!
override func viewDidLoad() {
    super.viewDidLoad()

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    gemCloudImage.center.x = 100
    makeCloudFly()
}

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

func makeCloudFly() {
    UIView.animateWithDuration(6, delay: 1, options: [.Autoreverse, .Repeat], animations: {
        self.gemCloudImage.center.x = self.view.frame.width - 100
        }, completion: nil)
}

@IBAction func buttonTapped(sender: AnyObject) {

    let positionX: CGFloat = gemCloudImage.layer.presentationLayer()!.frame.midX
    let positionY: CGFloat = gemCloudImage.layer.presentationLayer()!.frame.midY
    print(positionX)
    print(positionY)

    let chair = UIImageView()
    chair.image = UIImage(named: "CHAIR1")
    chair.frame = CGRectMake(positionX, positionY, 50, 50)
    chair.frame = CGRect(x:positionX, y:positionY, width:50, height:50)
    self.view.addSubview(chair)

}