J'ai une tableview pour montrer quelques produits, les produits peuvent avoir ou non un rabais, les remises (max 2) sont groupées dans un stackView, donc dans le code que je cache ou montre la vue de la pile si le produit a un rabais.Stackview est caché dans la cellule tableview réutilisable après avoir inséré des cellules
Le problème vient quand j'insère une nouvelle cellule, soudainement la cellule qui détient un produit avec remise n'a pas la vue de la pile visible.
I essayé avec les 2 méthodes pour dequeue cellules, lors de l'utilisation,
tableView.dequeueReusableCell(withIdentifier:, forIndexPath)
le problème se produit lors de l'insertion mais lors de l'utilisation,
tableView.dequeueReusableCell(withIdentifier:)
le problème à l'insertion de disparaître, mais se produit à nouveau lorsque je fais défiler vers le bas pour rendre la cellule non visible et revenir en arrière.
C'est le code dans la cellule pour la ligne:
let basicCell = tableView.dequeueReusableCell(withIdentifier: "basicCell") as! BasicCell
if product.discounts{
basicCell.discountType = DiscountType.lineDiscount
}else{
basicCell.discountType = DiscountType.none
}
basicCell.configureCellType()
return basicCell
Et le code de configureCellType():
func configureCellType(){
switch discountType! {
case .none:
discountStackView.isHidden = true
case .lineDiscount:
groupDiscountView.isHidden = true
case .groupDiscount:
lineDiscountView.isHidden = true
case .bothDiscounts: break
}
}
Veuillez montrer votre implémentation 'cellForRow'. – shallowThought
appel cell.layoutIfNeeded() avant la déclaration de retour .. –
@Umer qui n'a pas travaillé – user3407533