У меня есть 2 функции, которые, когда я звоню, портят мой UIView
. Я звоню им, когда нажимаю Button
. Прямо перед вызовом этих двух функций я вызываю View.isHidden = false
для UIView
. Проблема в том, что если я вызову эти две функции ниже, .isHidden
будет вызвана через несколько секунд, и это выглядит очень неуклюже.
@objc func addWishButtonTapped() {
setUpLoadingAnimation() // this is where I call MyCustoView.isHidden = false
self.crawlWebsite { // here I call the two functions below
...
}
}
crawlWebsite:
func crawlWebsite(finished: @escaping () -> Void){
var html: String?
guard let url = self.url else {
return
}
let directoryURL = url as NSURL
let urlString: String = directoryURL.absoluteString!
// save url to wish
self.wishView.link = urlString
html = self.getHTMLfromURL(url: url)
self.getContentFromHTML(html: html, url: url)
}
Функция 1:
//MARK: getHTMLfromURL
func getHTMLfromURL(url: URL?) -> String{
let myURLString = url
guard let myURL = myURLString else {
print("Error: \(String(describing: url)) doesn't seem to be a valid URL")
return ""
}
do {
let myHTMLString = try String(contentsOf: myURL, encoding: .utf8)
return myHTMLString
} catch let error {
print("Error: \(error)")
}
return ""
}
Функция 2:
//MARK: getContent
func getContentFromHTML(html: String?, url: URL){
do {
let doc: Document = try SwiftSoup.parse(html ?? "")
if url.absoluteString.contains("amazon") {
self.getAmazonImage(url: url)
}
self.getImages(doc: doc)
// set price if not 0
let price = Int(self.getPrice(doc: doc))
if price != 0 {
self.wishView.amount = Int(self.getPrice(doc: doc))
self.wishView.priceTextField.text = self.wishView.updateAmount()
}
} catch Exception.Error( _, let message) {
print(message)
} catch {
print("error")
}
}
Что я могу здесь сделать, чтобы моя анимация просмотра работала гладко? Я пытался встроить две функции в DispatchQueue.main.async
, но у меня не получилось... Есть идеи? Что мне здесь не хватает?
crawlWebsite
? Почему вы не вызываете закрытиеfinished
? И, пожалуйста, загрузите кодsetUpLoadingAnimation
. Надеюсь, вы понимаете, что я не могу вам помочь, если не вижу полный код. - person Luca Sfragara   schedule 25.01.2021crawlWebsite-closure
, но это не причина ошибки. Я вызываюfinished
внутри другого функтоина внутриcrawlWebsite
. Я сузил его до двух функций выше. Если я удалю две функции выше, все будет работать нормально. Так что ошибка должна быть в коде выше. Что вам нужно? :) - person Chris   schedule 25.01.2021