2017-05-17 13 views
1

いくつかの製品を表示するためのテーブルビューがあり、その製品には割引があるかどうかは関係ありません。製品に割引がある場合はスタックビュー。セルを挿入した後、再利用可能なテーブルビューのセルにStackviewが表示されない

問題は、新しいセルを挿入すると、突然、割引のある製品を保持するセルにスタックビューが表示されなくなります。

Iを使用する場合、私は、消失挿入で

tableView.dequeueReusableCell(withIdentifier:) 

問題、Iを使用する場合、問題が を挿入する際に生じるが、デキュー細胞のための2つの方法、 と

tableView.dequeueReusableCell(withIdentifier:, forIndexPath) 

を試しセルが表示されず、スクロールバックされるようにスクロールすると再び発生します。

これは、行のために、細胞内のコードです:問題はあなたのconfigureCellType()機能に実際にあるだけでなく

func configureCellType(){ 
    switch discountType! { 
    case .none: 
     discountStackView.isHidden = true 
    case .lineDiscount: 
     groupDiscountView.isHidden = true 
    case .groupDiscount: 
     lineDiscountView.isHidden = true 
    case .bothDiscounts: break 
    } 
} 
+0

'cellForRow'実装を表示してください。この問題が発生する可能性があり、誰のために – shallowThought

+0

コールreturn文の前にcell.layoutIfNeeded()..基本セルを返す前に –

+0

@Umer、 cell.setNeedsLayout()、 cell.layoutIfNeededを(してみてください) – user3407533

答えて

0

let basicCell = tableView.dequeueReusableCell(withIdentifier: "basicCell") as! BasicCell 
     if product.discounts{ 
      basicCell.discountType = DiscountType.lineDiscount 
     }else{ 
      basicCell.discountType = DiscountType.none 
     } 
     basicCell.configureCellType() 

     return basicCell 

そしてconfigureCellType(のコード)。 各ケースがスタックビューを隠しているので、それを確認してください。

+0

実際にはスタックビューだけを隠しています。他のものはサックビュー内のビューです – user3407533

+0

ありがとうございました!あなたのコメントは私にそれを解決するためのアイデアを与えました – user3407533

+0

実際にスタックビューは、あなたが完全にそれらを隠すなら、それは見えません。私はあなたがそれを持っていることを願っています –

関連する問題