Ios 如何在类文件中设置UIView的动画?

Ios 如何在类文件中设置UIView的动画?,ios,swift,uiview,Ios,Swift,Uiview,我正在开发一个应用程序,用户点击添加一个站点,从那里会出现一个弹出窗口,要求用户提供适当的信息,UIView将被设置动画,但我很难让它从单独的文件内部工作 以下是Animations.swift文件中的代码 import Foundation import UIKit class Animations: UIView { func animatePopUpIn(view: UIView, controller: UIViewController) { control

我正在开发一个应用程序,用户点击添加一个站点,从那里会出现一个弹出窗口,要求用户提供适当的信息,UIView将被设置动画,但我很难让它从单独的文件内部工作

以下是Animations.swift文件中的代码

import Foundation
import UIKit

class Animations: UIView {

    func animatePopUpIn(view: UIView, controller: UIViewController) {

        controller.view.addSubview(view)
        view.center = center

        view.transform = CGAffineTransform.init(scaleX: 1.3, y: 1.3)
        view.alpha = 0

        UIView.animate(withDuration: 0.4) {
            controller.view.alpha = 1
            controller.view.transform = CGAffineTransform.identity
        }

    }
import UIKit

class StationController: UIViewController {

    @IBOutlet var addStationView: UIView!
    var animation = Animations()


    override func viewDidLoad() {
        super.viewDidLoad()

        navigationItem.title = "Stations"
    }

    @IBAction func addStationTapped(_ sender: Any) {

        animation.animatePopUpIn(view: addStationView, controller: self)
        print("Displayed Pop Up")
    }


    @IBAction func dismissPopUpTapped(_ sender: Any) {


    }


}
}

以下是StationController.swift文件的代码

import Foundation
import UIKit

class Animations: UIView {

    func animatePopUpIn(view: UIView, controller: UIViewController) {

        controller.view.addSubview(view)
        view.center = center

        view.transform = CGAffineTransform.init(scaleX: 1.3, y: 1.3)
        view.alpha = 0

        UIView.animate(withDuration: 0.4) {
            controller.view.alpha = 1
            controller.view.transform = CGAffineTransform.identity
        }

    }
import UIKit

class StationController: UIViewController {

    @IBOutlet var addStationView: UIView!
    var animation = Animations()


    override func viewDidLoad() {
        super.viewDidLoad()

        navigationItem.title = "Stations"
    }

    @IBAction func addStationTapped(_ sender: Any) {

        animation.animatePopUpIn(view: addStationView, controller: self)
        print("Displayed Pop Up")
    }


    @IBAction func dismissPopUpTapped(_ sender: Any) {


    }


}

出于某种原因,在点击addStationTapped时,没有任何显示,任何帮助都将是非常好的,因为我对以这种方式使用类是相当陌生的。提前感谢。

另一个更好的方法是制作单独的viewcontroller并将其添加为popover。您可以使用第三方类或手动将视图控制器添加为pop。如果您想手动添加,我可以提供帮助。

您真的需要这个类吗?视图(显示)的大小是多少?如何在IB中创建它?我几乎可以肯定它的大小为零。您可以使用新的Xcode工具进行UI调试-查看层次结构。有时我需要设置弹出窗口的动画。我宁愿有某种类型的类或函数,通过传递适当的参数来自动完成它,这样我就不必一遍又一遍地重写相同的代码。因为视图的大小,它的大小在主情节提要内部。我创建了outlet addStationView来引用它。