제목에 내 앱에 문제가 있다고합니다. iOS에서 애니메이션을 표시하기 전에 네트워크 시간 초과를 올바르게 설정하는 방법은 무엇입니까?
- 앱이 메인 메뉴를로드하고 연결 : 제가 글 머리 기호 목록을 사용하여 달성하기 위해 노력하고있어 세부에서 조금 더 설명하게 제품 이미지
- 애니메이션은 제품 정보 및 이미지
을 보여주기 위해의 내용은 내가 연결이 작동하지 않거나 제품이 존재하지 않는 경우를 처리하는 기능을 만들었습니다. 문제는 애니메이션이 시작되기 전에 연결이 너무 느려서 이미지를로드 할 수없는 경우입니다 (약 2 초). 이 경우 앱이 조금 붙어서 애니메이션이 끝나기 전에 제품이 표시됩니다.
로드 코드
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: {
...
}
}
제품 이미지 다운로드 코드 :
는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)
}
}
}
내 목표는 내가 응답을 한 번 애니메이션을 시작하는 것입니다 다운로드 상태에서 또는 이미지를 다운로드하는 데 연결 시간이 2 초 이상 걸리기 때문입니다. 어떤 충고?