일부 제품을 보여주기위한 테이블 뷰가 있습니다. 제품에 할인이 있거나 없을 수 있습니다. 할인 (최대 2 개)은 스택 뷰로 그룹화되므로 코드에서 숨기거나 표시합니다. 제품에 할인이있는 경우 스택보기.Stackview는 셀을 삽입 한 후 다시 사용할 수있는 테이블 뷰 셀에 숨겨져 있습니다.
새 셀을 삽입 할 때 문제가 발생합니다. 갑자기 할인 된 제품을 보유한 셀에 스택보기가 표시되지 않습니다.
난,
하지만 사용할 때 를 삽입 할 때 문제가 발생tableView.dequeueReusableCell(withIdentifier:, forIndexPath)
,
tableView.dequeueReusableCell(withIdentifier:)
문제 없어 삽입시, I 사용 , 디큐 셀의 2 가지 방법으로 시도 그러나 셀을 보이지 않게하고 뒤로 스크롤 할 때 아래로 스크롤하면 다시 발생합니다.
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의 코드() :
func configureCellType(){
switch discountType! {
case .none:
discountStackView.isHidden = true
case .lineDiscount:
groupDiscountView.isHidden = true
case .groupDiscount:
lineDiscountView.isHidden = true
case .bothDiscounts: break
}
}
'cellForRow' 구현을 보여주십시오. – shallowThought
호출은 기본 셀을 반환하기 전에 –
@Umer이 cell.setNeedsLayout(), cell.layoutIfNeeded()는이 문제가있을 수있는 사람들을위한 – user3407533