J'ai donc cette fonction:intérieur tableView: cellForRowAtIndexPath: seulement appelé pour la première 2 cellules
func addActivityIndicator(_ aspectRatio: CGFloat?, index: Int) {
if activityIndicator == nil {
print("add activity indicator")
print("at index: \(index)")
let screenWidth = UIScreen.main.bounds.width
let height: CGFloat
if let aspectRatio = aspectRatio {
height = screenWidth/aspectRatio
} else {
print("aspect ratio is nil")
height = screenWidth
}
let indicatorFrame = CGRect(x: (screenWidth - 60)/2,
y: (height - 60)/2,
width: 60,
height: 60)
self.activityIndicator = NVActivityIndicatorView(frame: indicatorFrame,
type: .ballClipRotateMultiple,
color: .lightGray,
padding: nil)
self.addSubview(self.activityIndicator!)
self.activityIndicator?.startAnimating()
}
}
qui ajoutent juste fondamentalement un indicateur d'activité dans le centre de la superview. puis j'ai appelé cette fonction à l'intérieur cellForRow: AtIndexPath:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let contentCell = tableView.dequeueReusableCell(withIdentifier: "ContentCell", for: indexPath) as! ContentCell
contentCell.thumbnail.addActivityIndicator(content.aspectRatio, index: indexPath.row)
return contentCell
}
miniature est une UIImageView qui sera ajouté un indicateur d'activité. Mais dans le journal, je ne vois que ceci:
indicateur d'activitéadd à l'index: 0
indicateur d'activitéadd à l'index: 1
add indicateur d'activité à l'index: 2
Comment faire pour que la fonction addActivityIndicator
fonctionne sur toutes les cellules?
Quelle est la question? – vadian
tbh, il est difficile de comprendre la question mais je suppose que vous demandez pourquoi l'indicateur d'activité est ajouté à 3 cellules seulement, mais vous avez, disons, 20 la raison possible est que vous avez 3 cellules visibles à la fois. tableview n'instancie pas toutes les cellules immédiatement, mais les réutilise. – RinaLiu
mais le journal est imprimé après avoir fait défiler toute la tableview. oublié de mentionner cela. – samitarmum