必要なもの:Viewcontrollerが呼び出された後、バックグラウンドを除き、このViewController内のすべての要素をフェードインします。背景は残っていなければなりません。アルファベットを1.0に戻した後、ボタン/ラベル/何も表示されません。
何がうまくいかない:私のコードに見られるように、フェードインするものについては、最初に削除する必要があります。除去部分はすばらしいことです。しかし、私がそれを再出現させたいとき、何も起こらない。印刷機能を使用してランダムラベルのアルファを見ると、1.0に設定されます。私は何が間違っているのか分かりません。
これは私のコードです:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
Removeeverything()
Fadein()
}
func Removeeverything() {
for view in self.view.subviews as [UIView] {
if let btn = view as? UIButton {
UIView.animateWithDuration(0.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
btn.alpha = 0.0
}, completion: nil)
}
}
for view in self.view.subviews as [UIView] {
if let btn = view as? UILabel {
UIView.animateWithDuration(0.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
btn.alpha = 0.0
}, completion: nil)
}
}
for view in self.view.subviews as [UIView] {
if let btn = view as? UIImageView {
UIView.animateWithDuration(0.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
btn.alpha = 0.0
}, completion: nil)
}
}
}
func Fadein() {
Backgrond.alpha = 1.0
for view in self.view.subviews as [UIView] {
if let btn = view as? UIButton {
UIView.animateWithDuration(1.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
btn.alpha = 1.0
}, completion: nil)
}
}
for view in self.view.subviews as [UIView] {
if let btn = view as? UILabel {
UIView.animateWithDuration(1.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
btn.alpha = 1.0
}, completion: nil)
}
}
for view in self.view.subviews as [UIView] {
if let btn = view as? UIImageView {
UIView.animateWithDuration(0.7, delay: 0.0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
btn.alpha = 1.0
}, completion: nil)
}
}
}
これは確かに、コードをきれいにするのに役立ちます、ありがとう!それ以外は秒が上がった後に消えるだけです。 (ここでの秒は1.0と0.7です)私は10秒でテストしました。フェードインし、10秒以内に自動的にフェードアウトします。間違ったアニメーションを使用していますか? – Nahaku
それは今、私はいくつかの画像が動作していないと思う...うまくありがとう! – Nahaku