如何在函数中接受多种类型作为参数?

怀特

我想在另一个swift文件中创建一个通用函数,用于隐藏和显示带有动画的UI对象。这两个代码:

func hide(object: /*My UI Object*/, duration: Double, delay: Double) {
    UIView.animate(withDuration: duration, delay: delay, options: [], animations: {
        object.alpha = 0
    } ,
                   completion: nil
    )
}

func show(object: /*My UI Object*/, duration: Double, delay: Double) {
    UIView.animate(withDuration: duration, delay: delay, options: [], animations: {
        object.alpha = 1
    } ,
                   completion: nil
    )
}

我想使用对象的此功能,例如:UILabel,UIButton,UIView,UITextField等。我找不到任何允许多种类型作为“对象”参数的方法。

我还尝试将“对象”的类型设置为“任意”,但这会导致“对象”没有成员“ alpha”的错误。

将类型设置为AnyObject会导致错误,因为“ object”是“ let”常量,因此无法分配给属性。

谢谢您的帮助!

带子

您可以将参数键入为UIView,因为所有提到的控件都继承自该参数。

func hide(object: UIView, duration: Double, delay: Double) {
    UIView.animate(withDuration: duration, delay: delay, options: [], animations: {
        object.alpha = 0
    } ,
                   completion: nil
    )
}

func show(object: UIView, duration: Double, delay: Double) {
    UIView.animate(withDuration: duration, delay: delay, options: [], animations: {
        object.alpha = 1
    } ,
                   completion: nil
    )
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用类型提示为参数指定多种类型?

如何使结构接受两种类型之一作为参数?

您如何使一个函数接受多种类型?

如何在Golang中编写一个以多种类型为参数的函数?

如何在Golang中为多种类型编写函数?

接受所有类型作为函数中的参数

如何记录采用多种类型的参数

在Nim中定义多种类型的参数

接受多种类型的方法参数

如何使Rust函数接受任何浮点类型作为参数

如何使用原因反应定义在函数签名中接受多种类型的绑定?

如何在C函数中传递“类型”作为参数?

作为函数结果的具有多种类型的Scala类型参数

创建Arraylist作为接受Kotlin中任何类型的函数的参数

如何编写一个scala函数来接受两种类型的参数?

如何在ReasonML中编写带有类型变量的函数以接受任何类型的参数?

我可以在C#中为一个参数接受多种类型吗?

函数接受函数作为模板类型的参数

如何在打字稿中使用多种类型的数组调用map函数

如何在MVC + Razor中接受html内容作为辅助函数的参数?

如何在Firebase中推送多种类型的数据?

如何允许参数为多种类型?

如何在UML类图中描述一个方法接受多种类型?

如何让方法接受两种类型的列表作为参数?

一个接受多种类型的函数

如何在 Kotlin 的函数类型中接收 null 作为参数

如何将具有多种类型的参数作为参数传递给 Typescript 中的函数?

允许 Swift 函数参数为多种类型

在 Rust 中,如何创建一个接受“标记组件”作为类型参数的函数?