UIImageViewを実際に登場させない限り、UIImageViewを継承するクラスでオーバーライドすることができる、Swiftや他の同様の機能のUIImageViewDidAppear関数がありますか?スクリーン?imageViewが出現した後にコードを実行する方法
オブジェクトが表示される前にinit関数が発生しているため、この関数は使用できません。
UIImageViewを実際に登場させない限り、UIImageViewを継承するクラスでオーバーライドすることができる、Swiftや他の同様の機能のUIImageViewDidAppear関数がありますか?スクリーン?imageViewが出現した後にコードを実行する方法
オブジェクトが表示される前にinit関数が発生しているため、この関数は使用できません。
あなたはUIImageViewをサブクラス化とメソッドdidMoveToSuperviewをオーバーライドすることができます。
class ImageView: UIImageView {
override func didMoveToSuperview() {
guard superview != nil else { return }
print("put your code here")
}
}
これは良い解決策ですが、新しい 'superview'をチェックする必要があります。 'nil'の場合、イメージビューは削除されています。したがって、 'superview'が' nil'でないことを保証する必要があります。 – rmaddy
@rmaddyあなたは本当ですか?もしそれがnilなら、それはすでにスーパービューに移動することができますか?ところで、これは 'willMove(toSuperview:)'ではありません。 –
はい、私は確信しています。私はちょうど遊び場でそれを確認しました。 'removeFromSuperview'を呼び出すと、' didMoveToSuperview'が呼び出され、その時点で 'superview'が' nil'になります。 – rmaddy
は(viewDidLayoutSubviewsを使用してみてください) –
あなたは、通常のビューのライフサイクルを使用することはできますか?本質的に、 'viewDidAppear'または' viewDidLayoutSubviews'はどうでしょうか? – dfd
UIViewのメソッドではないビューコントローラメソッドです。 –