最初のビューコントローラでは、Googleのようなさまざまなサイトがスタックオーバーフローするテーブルビューがあります...追加されたサービスごとに、そのサイトの最初の文字に基づいて画像が読み込まれます。そのため、Tの画像がTwitter用に読み込まれます。スウィフトテーブルビューのセル画像の最初にロードされていない
ユーザーは、そのセルをタップして2番目のVCに移動してURLを追加することができます。ユーザーが最初のVCに戻ってくると、そのサイトは文字イメージの代わりにファビコンを引っ張ろうとします...これはうまくいきますが、正常には動作しません。
私が最初に望んでいたのは、各画像が読み込まれるとすぐに表示されることでした。明らかにすべてではなく、ユーザーのアプリケーションとのやり取りが中断されることはありませんでした。
現在、何が起こっているかは、一度にいくつか表示されています(これは正常です)が、最初は適切な場所には表示されません。だから私はアマゾン、グーグル、マイクロソフト、フェイスブック、リンゴを持っていると言う...ファビコンは実際には順序が狂っているので、マイクロソフトではグーグルのロゴがあり、数秒後にはFacebookに移行し、もう一度シフトして、それが正しいマッチングの場所に来るまで...これはまた、私が '折りたたみの下で'スクロールして、いくつかの瞬間が正しくなると起こります(セルのタイトルはそのままです)。コードが間違っていて、最低でもFacebookを最初に作ってからグーグル・グーグルなどを好きになるだろう
または別のオプションは、すべての画像が文字画像として開始してからコードファビコンと交換しようとする... ..
すべてのヘルプは素晴らしいことだ。ここ
ユーザーインターフェイスを変更しているので、
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "serviceCell", for: indexPath as IndexPath) as! ServiceTableViewCell
let row = indexPath.row
cell.serviceNameLabel.text = serviceArray[row].serviceName
DispatchQueue.global().async {
let myURLString: String = "http://www.google.com/s2/favicons?domain=\(self.serviceArray[row].serviceUrl)"
if let myURL = URL(string: myURLString), let myData = try? Data(contentsOf: myURL), let image = UIImage(data: myData) {
cell.serviceLogoImage.image = image
} else {
cell.serviceLogoImage.image = UIImage.init(named: "\(self.getLetterOrNumberAndChooseImage(text: self.serviceArray[row].serviceName))")
}
}
return cell
}
}