2017-08-31 47 views
1

目前,我有我的主視圖設置,其中,當我點擊一個UILabel,它改變了它的不透明度爲0和文本字段,這是最初隱藏的,有它的不透明度設置爲0會出現上述值倒置(hidden = false, opacity = 1)。使用交換(_:_ :)有兩種不同類型的

我打算這兩種觀點往往所以我認爲這將是理想的使用swap(_:_:)功能之間交換的值。不幸的是我得到這個錯誤在於UILabelUITextField是不一樣的類型:

Cannot convert value of type 'UITextField!' to expected argument type 'UILabel'

有沒有解決這個任何方式或將我被卡住創造我自己的功能?

@IBAction func onTapToEnterBillAmount(_ sender: UITapGestureRecognizer) { 
    UIView.animate(withDuration: 0.2, animations: { 
     swap(&self.tapToEnterBillAmountLabel, &self.billAmountTextField) 
    }) 
} 

回答

1

由於swap(_:_:)需要兩個參數是相同的類型,嘗試更換UIButton/UILabel的實際匹配屬性:

@IBAction func onTapToEnterBillAmount(_ sender: UITapGestureRecognizer) { 
    UIView.animate(withDuration: 0.2, animations: { 
     swap(&self.tapToEnterBillAmountLabel.alpha, &self.billAmountTextField.alpha) 
    }, completion: { _ in 
     swap(&self.tapToEnterBillAmountLabel.isHidden, &self.billAmountTextField.isHidden) 
    }) 
} 
+0

感謝您的答覆。這似乎適用於'alpha',但不適用於'isHidden',原因有些奇怪。任何想法爲什麼? –

+0

@CarlEdwards'isHidden'可能不是動畫。我只想堅持以'alpha',或做了'完成內部的'isHidden'交換:'UIView.animate' – Paolo

+0

的'通過幾個線程,我認爲你是對的細算。我可以將此標記爲正確,但也可以通過在您的答案中註明我們的發現來幫助其他人。再次感謝你的幫助。 –

相關問題