2017-04-30 31 views
1

アニメーションを含むUIオブジェクトを隠したり表示したりするための一般的な機能を別の迅速なファイルに作成したいと考えました。ここでは、両方のコードは次のとおりである:UILabel、UIButton、UIViewの、UITextFieldのと:関数で複数の型をパラメータとして受け入れる方法は?

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 
    ) 
} 

は、私のようなオブジェクトのこの機能を使用します。私は "オブジェクト"パラメータとして複数の型を許可する方法を見つけることができませんでした。

「オブジェクト」のタイプを「任意」に設定しようとしましたが、「オブジェクト」のエラーがメンバー「アルファ」を持たないという結果になりました。

型をAnyObjectに設定すると、「オブジェクト」が「let」定数であるためにプロパティに割り当てることができないというエラーが発生します。

ありがとうございました!

+4

タイプを使用することができますUIViewの継承。 – Hamish

+1

ありがとう!この回答をどう受け入れることができますか?それはコメントとしてしか表示されていないからです。 – wyte

答えて

6

上記のすべてのコントロールには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 
    ) 
} 
1

あなただけの `UIView`として、それを入力するUIView

関連する問題