タイトルには私のアプリに問題があると言われています。アプリはメインメニューをロードiOSでアニメーションを表示する前にネットワークタイムアウトを正しく設定するにはどうすればよいですか?
- と
- ダウンロードを表示するには、いくつかの製品がありますかどうかを確認するために、firebaseに接続します。私は箇条書きを使用して達成しようとしているものを詳細にもう少し説明しましょう製品画像
- は、製品情報および画像
を示すために、私は接続がうまくいかないケースを処理するための関数を作成したり、製品が存在していないコンテンツをアニメーション化。問題は、接続が遅すぎてアニメーションが開始する前に画像をロードできない(約2秒間)場合です。この場合、アプリがちょっと立ち往生し、アニメーションが終了する前に商品が表示されます。私の目的は、私が応答を持っていたら、アニメーションを起動することです
func fetchDataFromDatabase(downloadCompleted: @escaping ((Product?) -> Void)) {
FirebaseService.instance.getProductList { (productList) in
if (productList.count != 0) {
do {
let productImage = try Data(contentsOf: productList.productImage as URL)
// Fill the IBOutlet with the downloaded image
self.promoProductImg.image = UIImage(data: productImage)
downloadCompleted(productList)
} catch {
downloadCompleted(nil)
}
} else {
downloadCompleted(nil)
}
}
}
:
ロードコード
override func viewDidLoad() {
super.viewDidLoad()
// The view where the product will be shown
self.productView.alpha = 0.0
// Checks the internet connection
if (ConnectionService.isConnectedToNetwork()) {
fetchDataFromDatabase(downloadCompleted: { (productToShow) in
self.fillPromoView(usingProduct: productToShow)
})
} else {
fillPromoView(nil)
}
}
は、ここでは、コード
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
UIView.animate(withDuration: 0.5, delay: 2.0, options: UIViewAnimationOptions.curveEaseInOut, animations: {
...
}
}
製品イメージをダウンロードするためのコードを表示さダウンロード状態から、または接続に2秒以上かかってイメージがダウンロードされるためです。何かアドバイス?